Skip to content

Integrate azd extensions into awesome-azd gallery #748

@jongio

Description

@jongio

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions