ux(extensions): bundle shortlinks - #9520
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d743ee8d-6f2c-4244-9ca9-b64fb20643d1
|
Azure Pipelines: Successfully started running 1 pipeline(s). 21 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
|
Hi @JeffreyCA. Thank you for your interest in helping to improve the Azure Developer CLI experience and for your contribution. We've noticed that there hasn't been recent engagement on this pull request. If this is still an active work stream, please let us know by pushing some changes or leaving a comment. Otherwise, we'll close this out in 7 days. |
Summary
This PR allows
azd extension install <url>to install self-contained extension bundles from HTTPS short links and other URLs whose path does not end in.zip.Issue
Remote bundle detection previously relied on the URL path having a
.zipsuffix. Short links such ashttps://aka.ms/azd-extension-bundle-examplewere therefore interpreted as extension IDs and never reached the existing secure download and bundle-validation flow.Changes
.zipfiles..zipsuffixes and adds a mocked short-link download/install test.A positional web URL cannot be a valid extension ID and is separate from the
--sourceregistry-location flow. If the downloaded content is not a valid ZIP bundle, the existing extraction and validation errors are returned.Behaviour at a glance
azd extension install https://example.com/bundle.zipazd extension install https://aka.ms/azd-extension-bundle-exampleazd extension install ./bundle.zipTesting
Covered URL detection with and without
.zip, mocked short-link download and extraction, HTTP rejection, malformed URL handling, privacy-safe errors, build, linting, and spelling checks.