Private/Tools/Checks/Test-AzureDevOpsCli.ps1
|
function Test-AzureDevOpsCli { [CmdletBinding()] param() $results = @() $hasFailure = $false Write-Verbose "Checking Azure CLI installation for Azure DevOps" $azCliPath = Get-Command az -ErrorAction SilentlyContinue if ($azCliPath) { $results += @{ message = "Azure CLI is installed." result = "Success" } # Check if Azure DevOps extension is installed Write-Verbose "Checking Azure DevOps extension" $extensionList = az extension list -o json 2>$null | ConvertFrom-Json $devopsExtension = $extensionList | Where-Object { $_.name -eq "azure-devops" } if ($devopsExtension) { $results += @{ message = "Azure DevOps extension is installed." result = "Success" } } else { Write-Verbose "Azure DevOps extension not found, attempting to install..." $null = az extension add --name azure-devops 2>&1 if ($LASTEXITCODE -eq 0) { $results += @{ message = "Azure DevOps extension was installed automatically." result = "Success" } } else { $results += @{ message = "Azure DevOps extension is not installed. Install using: az extension add --name azure-devops" result = "Failure" } $hasFailure = $true } } } else { $results += @{ message = "Azure CLI is not installed. Follow the instructions here: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli" result = "Failure" } $hasFailure = $true } return @{ Results = $results HasFailure = $hasFailure } } |