Public/Get-PSADOBuildDefinition.ps1
function Get-PSADOBuildDefinition { <# .SYNOPSIS Get a list of Build Definitions and their properties .DESCRIPTION List Azure DevOps Builds Definitions that belong to a project. You can list them all, or select builds based on Builnumber or BuildDefinitionID .PARAMETER Project The name of the Project to search within. So https://dev.azure.com/{Organization}/{Project} .PARAMETER BuildDefinitionName The Name of the BuildDefinition .PARAMETER BuildDefinitionID The ID for the Build Definition .PARAMETER Organization The name of the Companyaccount in Azure DevOps. So https://dev.azure.com/{Organization} .PARAMETER User A username, with format user@Company.com .PARAMETER Token the PAT for the connection. https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops .EXAMPLE Get-PSADOBuildDefinition Company Project01 Shows all build definitions for the project Project01 in the Organization Company .EXAMPLE Get-PSADOBuildDefinition -Organization Company -Project Project01 -BuildDefinitionName Build01 Returns the build definition Build01 .NOTES Author: Barbara Forbes Module: Psado https://4bes.nl @Ba4bes #> [CmdletBinding()] param( [Parameter(Mandatory = $true, Position = 0)] [ValidateNotNullorEmpty()] [string]$Project, [Parameter()] [string]$BuildDefinitionName, [Parameter()] [string]$BuildDefinitionID, [Parameter()] [ValidateNotNullorEmpty()] [string]$Organization, [Parameter()] [ValidateNotNullorEmpty()] [string]$User, [Parameter()] [ValidateNotNullorEmpty()] [string]$Token ) $Header = New-Header -User $User -Token $Token [uri]$uri = "https://dev.azure.com/$Organization/$Project/_apis/build/definitions?api-version=5.1-preview.7" $BuildDefs = Get-PSADOApi -Uri $Uri -Header $Header if ($BuildDefinitionName) { $BuildDefs = $BuildDefs | Where-Object {$_.Name -eq $BuildDefinitionName} if ([string]::IsNullOrEmpty($BuildDefs)) { throw "BuildDefinition with name $BuildDefinitionName does not exist" } } if ($BuildDefinitionID) { $BuildDefs = $BuildDefs | Where-Object {$_.id -eq $BuildDefinitionID} if ($null -eq $BuildDefs) { throw "BuildDefinition with ID $BuildDefinitionID do not exist" } } foreach ($BuildDef in $BuildDefs) { $BuildDef.PSObject.TypeNames.Insert(0, 'PSADO.ADOBuildDef') } $BuildDefs } |