How to: Board Columns and Swimlanes Mapping on Azure DevOps

  1. PowerShell script will receive the following parameters:
  • $PAT = Personal Access token to connect on Azure DevOps;
  • $Organization = Organization URL to list all Team Settings (Board Columns and Swimlanes) on Azure DevOps organization;
  • $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:
$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
}
$uriTeams = $UriOrganization + "_apis/projects/$($project.id)/teams"    $TeamsResult = Invoke-RestMethod -Uri $uriTeams -Method get -Headers $AzureDevOpsAuthenicationHeader    Foreach ($team in $TeamsResult.value)    
{
Write-Host $team.name
}
$uriTeamBoards = $UriOrganization + "$($project.id)/$($team.id)/_apis/work/boards?api-version=6.1-preview.1"        $TeamBoardsResult = Invoke-RestMethod -Uri $uriTeamBoards -Method get -Headers $AzureDevOpsAuthenicationHeader        Foreach ($teamboard in $TeamBoardsResult.value)        
{
Write-Host $teamboard.name
}
$TeamBoardsBacklogLevelResult = Invoke-RestMethod -Uri $teamboard.url -Method get -Headers $AzureDevOpsAuthenicationHeader            Foreach ($boardColumn in $TeamBoardsBacklogLevelResult.columns)            {
Write-Host $boardColumn.Name
}
Foreach ($boardLane in $TeamBoardsBacklogLevelResult.rows) {
Write-Host $$boardLane.name
}
  • Team Project (1) = Filter report using Team Project field;
  • Team Name (2) = Filter report using Team Name field;
  • Backlog Level (3) = Filter report using Backlog Level (Epics, Features, Stories) field;
  • Board Column (4) = Filter report using Board Column field;
  • Swimlane (5) = Filter report using Swimlane field;
  • Board Columns (6) = List all information about Projects, Teams, Backlog Levels, and respective Board columns. If the respective columns are mapped on Backlog levels, the same will be marked (green ticks on a grid). In this example, Team C isn’t using customized Kanban columns (Analyze, Development, and Testing);
  • Board Swimlanes (7) = List all information about Projects, Teams, Backlog Levels, and respective Swimlanes. If the respective swimlanes are mapped on Backlog levels, the same will be marked (green ticks on a grid). In this example, Team C isn’t using customized swimlane Technical Debt.

--

--

--

Tech Solution Architect Manager na Accenture

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Testing HTTP servers in Go

Deploying an HTTP API on AWS using Elastic Beanstalk

Practical DDD in Golang: Aggregate

#kql — Kusto Query Language

READ/DOWNLOAD=? GIS Tutorial 1: Basic Workbook, 10

Monitor your dataLayer’s quality in real-time using Google Tag Manager and Firebase

real-time notification for dataLayer errors using firebase and google tag manager

Original Sin of Microservices, Part 2

How Sololearn changed my life?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vinicius Moura

Vinicius Moura

Tech Solution Architect Manager na Accenture

More from Medium

How to: Team Projects, Fields, and Picklists Mapping on Azure DevOps

Azure Automation Runbooks and Webhooks

AZURE AD APP REGISTRATION — CREATE APP ROLES USING MS GRAPH API AND POWERSHELL

Developing a File Sharing Platform using Azure! (PRACTICAL)