How to: Create Variable Groups (Libraries) Dashboard on Azure DevOps

Vinicius Moura
2 min readJun 1, 2021

This script and report extract all Variables Groups on each Team Project within Azure DevOps

An original script is available on my GitHub repository. See below this script:

Let’s go understand each command used.

  1. PowerShell script will receive the following parameters:
  • $PAT = Personal Access token to connect on Azure DevOps;
  • $Organization = Organization URL to list Variable Groups on each project;
  • $Connstr = connection string to Azure SQL Database that stores the report information. To create this report, it’s necessary to create previously a Azure SQL Server and Database and run a script below:

2. Projects List = use this REST API to list all projects on the Azure DevOps organization.

$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($PAT)")) }$UriOrganization = "https://dev.azure.com/$($Organization)/" $uriProject = $UriOrganization + "_apis/projects?`$top=500"$ProjectsResult = Invoke-RestMethod -Uri $uriProject -Method get -Headers $AzureDevOpsAuthenicationHeaderForeach ($project in $ProjectsResult.value)
{
Write-Host $project.name
}

3. Variablegroups Get Variable Groups = use this REST API to list all Variable Groups on each Team Project

$uriVariableGroups = $UriOrganization + "$($project.id)/_apis/distributedtask/variablegroups?api-version=6.0-preview.2"    $VariableGroupsResult = Invoke-RestMethod -Uri $uriVariableGroups -Method get -Headers $AzureDevOpsAuthenicationHeader    Foreach ($vg in $VariableGroupsResult.value)    
{
Write-Host $vg.name
}

4. After extract all Variable Groups, this information is stored in a table in Azure SQL.

5. After insert information into a table, I connected this database on Power BI:

  • Project Name (1) = Filter Team Project Name that contains Variable Groups;
  • Variable Group Type (2) = Filter type of Variable Groups (Azure key vault and/or Azure DevOps);
  • Variable Group (3) = Filter using Variable Group Name;
  • Variable Group Informations(4) = List all information about Variable Groups (Team Project, Type, Key Vault name, variables, and values).

--

--