From 7c82bc77caf7ea306de8eeff45c1eb26ee3bfbab Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 14:53:18 +0000 Subject: [PATCH 1/2] Initial plan From 83b6f9ffc38077dcbb0f8acaaec6fd75c2315a6f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 14:57:28 +0000 Subject: [PATCH 2/2] Add Open Extension Management in Browser command (patch 1.6.2) Agent-Logs-Url: https://github.com/CompN3rd/ADOExt/sessions/014cb324-bbe8-46b5-b079-f5633ae5c591 Co-authored-by: CompN3rd <1405794+CompN3rd@users.noreply.github.com> --- CHANGELOG.md | 1 + README.md | 1 + package-lock.json | 4 ++-- package.json | 8 +++++++- src/commands/accountCommands.ts | 35 +++++++++++++++++++++++++++++++++ src/extension.ts | 10 +++++++++- 6 files changed, 55 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01ef932..73ffbc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added - **Pipelines view**: Browse recent Azure Pipelines runs across selected organization/project scopes, filter by all/running/failed/mine, group by repository or branch, inspect timeline/artifacts, open step logs from tree nodes or details timeline links in read-only VS Code documents, and re-run or cancel runs with confirmation prompts. +- **Open Extension Management in Browser** (`ADOExt: Open Extension Management in Browser`): Command-palette shortcut to open the Azure DevOps extension management settings page (`_settings/extensions`) for a selected organization in the browser. Prompts for org selection when multiple organizations are configured. ## 1.6.1 — 2026-05-08 diff --git a/README.md b/README.md index cd48eb1..9a6310e 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,7 @@ Open VS Code Settings (Ctrl+, / Cmd+,) and search for `adoext` to customize: | `ADOExt: Refresh Work Items` | — | Manually refresh work items tree | | `ADOExt: Refresh Pull Requests` | — | Manually refresh PR tree | | `ADOExt: Checkout Pull Request Branch` | — | Check out a PR branch locally | +| `ADOExt: Open Extension Management in Browser` | — | Open the Azure DevOps extension management page for a selected organization | --- diff --git a/package-lock.json b/package-lock.json index ea16ae5..29ec570 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "adoext", - "version": "1.6.1", + "version": "1.6.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "adoext", - "version": "1.6.1", + "version": "1.6.2", "license": "MIT", "dependencies": { "azure-devops-node-api": "^15.1.2" diff --git a/package.json b/package.json index 0e0acc9..217b958 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "adoext", "displayName": "ADOExt - Azure DevOps Integration", "description": "Full-featured Azure DevOps integration for VS Code: work items, pull requests, comments, and multi-account/org support.", - "version": "1.6.1", + "version": "1.6.2", "publisher": "MarcKassubeck", "engines": { "vscode": "^1.101.0" @@ -478,6 +478,12 @@ "category": "ADOExt", "icon": "$(eye-closed)" }, + { + "command": "adoext.openExtensionManagement", + "title": "Open Extension Management in Browser", + "category": "ADOExt", + "icon": "$(extensions)" + }, { "command": "adoext.toggleResolvedPullRequestThreads", "title": "Show/Hide Resolved PR Threads", diff --git a/src/commands/accountCommands.ts b/src/commands/accountCommands.ts index 5f45656..cc34d79 100644 --- a/src/commands/accountCommands.ts +++ b/src/commands/accountCommands.ts @@ -178,6 +178,41 @@ export async function selectProject( return true; } +/** + * Open the Azure DevOps Extension Management page in the browser for a + * selected organization. Prompts for org selection when more than one + * organization is configured. + */ +export async function openExtensionManagement( + config: ConfigManager +): Promise { + const organizations = config.selectedOrganizations; + + if (organizations.length === 0) { + showWarningMessage('Please configure your organization first.'); + return; + } + + let organization: string; + + if (organizations.length === 1) { + organization = organizations[0]; + } else { + const picked = await vscode.window.showQuickPick( + organizations.map(org => ({ label: org })), + { + placeHolder: 'Select an organization to open Extension Management', + title: 'Open Extension Management' + } + ); + if (!picked) { return; } + organization = picked.label; + } + + const url = `https://dev.azure.com/${encodeURIComponent(organization)}/_settings/extensions`; + void vscode.env.openExternal(vscode.Uri.parse(url)); +} + /** * Inspect the active workspace's Git remotes for Azure DevOps URLs and offer * to apply the detected org/project as the extension's configuration. diff --git a/src/extension.ts b/src/extension.ts index 6f9128a..a0a108f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -25,7 +25,8 @@ import { PrStatusChangeHandler } from './notifications/handlers/prStatusChangeHa import { selectOrganization, selectProject, - detectAndSuggestRepoContext + detectAndSuggestRepoContext, + openExtensionManagement } from './commands/accountCommands'; import { changeWorkItemState, @@ -321,6 +322,13 @@ export async function activate(context: vscode.ExtensionContext): Promise }) ); + // Open Extension Management in browser + context.subscriptions.push( + vscode.commands.registerCommand('adoext.openExtensionManagement', async () => { + await openExtensionManagement(config); + }) + ); + // Select project context.subscriptions.push( vscode.commands.registerCommand('adoext.selectProject', async () => {