Summary
Add first-class support for azd extensions in the awesome-azd gallery, making it easy for developers to discover, browse, and submit extensions alongside templates.
What are azd extensions?
Azure Developer CLI extensions expand azd with custom commands, lifecycle hooks, MCP servers, service target providers, and more. Each extension has a registry.json file containing metadata (id, displayName, description, versions, capabilities, platform artifacts).
Proposed Changes
Gallery Integration
- Templates | Extensions toggle on the main gallery page to switch between content types
- Extension cards with capability badges, version info, author links, website link, and one-click install command copy
- Filtering by extension capabilities (Commands, Lifecycle, MCP, Service Target, Framework, Metadata)
- Search across extension name, description, author, namespace, and website
- Dynamic hero — title, description, and search placeholder update based on content type
- Contextual CTA — "Built an extension? Submit it here →" appears when viewing extensions
Data Model
extensions.json — Extension seed data (parallel to templates.json)
extensionTypes.ts — TypeScript types for Extension, ExtensionCapability, ExtensionPlatform
extensions.ts — Data loader with sorting (mirrors users.tsx pattern)
- 6 extension capability tags in
tags.tsx
Automated Submission Pipeline
- GitHub Issue template (
extension-submission.yml) — Form for submitting extensions with registry URL, source repo, author info, website
- GitHub Actions workflow (
extension-submission.yml) — Auto-validates registry.json, updates extensions.json, creates PR
- Supports both issue-triggered and
workflow_dispatch (manual) triggers
- Validation script (
validate-extension.js) — Fetches and validates registry structure, capabilities, semver versions, platform artifacts
Documentation
docs/extensions.md — What extensions are, how to install/manage them, how to submit
- Updated
docs/contribute.md — Added "Submit an azd Extension" section
Security
- Workflow uses
process.env for all user-controlled inputs (no direct interpolation in scripts)
- Separate stderr handling in validation step
- All hooks called unconditionally (React Rules of Hooks compliance)
Seed Extensions
jongio.azd.app — Developer productivity commands
jongio.azd.copilot — AI-powered Azure development assistant
jongio.azd.exec — Script execution with Azure context
jongio.azd.rest — REST API calls with Azure auth
microsoft.azd.demo — Example extension from azure-dev repo
Summary
Add first-class support for azd extensions in the awesome-azd gallery, making it easy for developers to discover, browse, and submit extensions alongside templates.
What are azd extensions?
Azure Developer CLI extensions expand
azdwith custom commands, lifecycle hooks, MCP servers, service target providers, and more. Each extension has aregistry.jsonfile containing metadata (id, displayName, description, versions, capabilities, platform artifacts).Proposed Changes
Gallery Integration
Data Model
extensions.json— Extension seed data (parallel totemplates.json)extensionTypes.ts— TypeScript types for Extension, ExtensionCapability, ExtensionPlatformextensions.ts— Data loader with sorting (mirrorsusers.tsxpattern)tags.tsxAutomated Submission Pipeline
extension-submission.yml) — Form for submitting extensions with registry URL, source repo, author info, websiteextension-submission.yml) — Auto-validatesregistry.json, updatesextensions.json, creates PRworkflow_dispatch(manual) triggersvalidate-extension.js) — Fetches and validates registry structure, capabilities, semver versions, platform artifactsDocumentation
docs/extensions.md— What extensions are, how to install/manage them, how to submitdocs/contribute.md— Added "Submit an azd Extension" sectionSecurity
process.envfor all user-controlled inputs (no direct interpolation in scripts)Seed Extensions
jongio.azd.app— Developer productivity commandsjongio.azd.copilot— AI-powered Azure development assistantjongio.azd.exec— Script execution with Azure contextjongio.azd.rest— REST API calls with Azure authmicrosoft.azd.demo— Example extension from azure-dev repo