Skip to content

feat: ADO marketplace support (marketplace.yml with Azure DevOps repos) #1010

@sergio-sisternes-epam

Description

@sergio-sisternes-epam

Summary

apm marketplace build currently assumes owner/repo as the package source format (enforced by SOURCE_RE in yml_schema.py). Azure DevOps repositories use a 3-part path (org/project/_git/repo) which doesn't fit this schema.

Context

This came up during the investigation for #1008 (GHE support). While RefResolver and build_https_clone_url() now work for any GITHUB_HOST value, ADO has structural differences that require dedicated support:

  1. URL structure: ADO repos use https://dev.azure.com/{org}/{project}/_git/{repo} -- the 3-part path doesn't fit owner/repo
  2. Schema validation: SOURCE_RE = r"^[^/]+/[^/]+$" in yml_schema.py only allows 2-segment paths
  3. Metadata API: ADO uses a different REST API (/_apis/git/repositories/) than GitHub
  4. Authentication: ADO uses ADO_APM_PAT or az CLI, not GITHUB_APM_PAT

Scope

  • Extend SOURCE_RE to accept ADO-style 3-part paths (or add host field to marketplace.yml package entries)
  • Add ADO URL construction for git ls-remote
  • Add ADO metadata fetch via ADO REST API
  • Wire ADO auth (ADO_APM_PAT / az CLI) into the marketplace builder
  • Tests and documentation

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/docs-sitedocs/src/content (Starlight), README, doc generation.area/enterpriseAir-gapped/GHE configurability, registry proxy, rulesets, adoption playbook.area/marketplacemarketplace.json schema, federation, authoring suite, source parity.status/needs-designDirection approved, design discussion required before code.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).theme/governanceGoverned by policy. apm-policy, audit, enforcement, enterprise rollout.type/featureNew capability, new flag, new primitive.

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions