Skip to content

Define azd connection model to Azure Dev Ops #236

Description

@vhvb1989

In order to support Azure DevOps as a repository for a azd - project and use its CI pipeline:

  • azd requires interactacting with Azure devOps in the same way as it can interact with GitHub.

For GitHub, azd relies on the GitHub CLI for operations such as settings secrets, creating new repos, etc.

For Azure DevOps, there are a couple of alternatives for integration:

  1. Rely on the Azure CLI with devops extension

Pros:

  • azd is already depending on Azure CLI
  • azd binary size won't increase
  • Authentication is handled by Azure CLI

Cons:

  • User must install the extension for az (similar to bicep extension)
  • azd would only have access to what it is offered by the extension.
  1. Use DevOps go-library

Pros:

  • No extra-tools dependencies
  • library handles Authentication (requires only org name and PAT as input)

Cons:

  • azd binary size increase (might be just a few MB)
  • User is asked for a PAT and organization name (prompt or env var)
  • azd depends on what the library functionally exports.
  1. Consume DevOps Rest API directly

Pros:

  • No dependency or limitations on functionality exported by libraries or external tools

Cons:

  • azd binary size increase (might be just a few MB)
  • User is asked for a PAT and organization name (prompt or env var)
  • azd handles authentication directly for each request

Proposal

Based on the previous options, I suggest following the approach number 3, to avoid tools and library limitations.
But I will open this to the team for feedback.

Metadata

Metadata

Labels

area/pipelineCI/CD pipeline config (GH Actions, AzDO)

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions