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:
- 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.
- 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.
- 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.
In order to support
Azure DevOpsas a repository for aazd - projectand use its CI pipeline:azdrequires 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:
Pros:
Cons:
az(similar to bicep extension)Pros:
Cons:
Pros:
Cons:
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.