Public/Get-PSADOReleaseDefinition.ps1
function Get-PSADOReleaseDefinition { <# .SYNOPSIS Get a list of Release Definitions and their properties .DESCRIPTION List Azure DevOps Release Definitions that belong to a project. You can list them all, or select Releases based on Releasenumber or ReleaseDefinitionID .PARAMETER Project The name of the Project to search within. So https://dev.azure.com/{Organization}/{Project} .PARAMETER ReleaseDefinitionName The Name of the ReleaseDefinition .PARAMETER ReleaseDefinitionID The ID for the Release 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-PSADOReleaseDefinition Company Project01 Shows all Release definitions for the project Project01 in the Organization Company .EXAMPLE Get-PSADOReleaseDefinition -Organization Company -Project Project01 -ReleaseDefinitionName Release01 Returns the Release definition Release01 .NOTES Author: Barbara Forbes Module: Psado https://4bes.nl @Ba4bes #> [CmdletBinding()] param( [Parameter(Mandatory = $true, Position = 0)] [ValidateNotNullorEmpty()] [string]$Project, [Parameter()] [string]$ReleaseDefinitionName, [Parameter()] [string]$ReleaseDefinitionID, [Parameter()] [ValidateNotNullorEmpty()] [string]$Organization, [Parameter()] [ValidateNotNullorEmpty()] [string]$User, [Parameter()] [ValidateNotNullorEmpty()] [string]$Token ) $Header = New-Header -User $User -Token $Token [uri]$uri = "https://vsrm.dev.azure.com/$Organization/$Project/_apis/release/definitions?api-version=5.1-preview.3" $ReleaseDefs = Get-PSADOApi -Uri $Uri -Header $Header if ($ReleaseDefinitionName) { $ReleaseDefs = $ReleaseDefs | Where-Object {$_.Name -eq $ReleaseDefinitionName} if ($null -eq $ReleaseDefs) { throw "ReleaseDefinition with name $ReleaseDefinitionName does not exist" } } elseif ($ReleaseDefinitionID) { $ReleaseDefs = $ReleaseDefs | Where-Object {$_.id -eq $ReleaseDefinitionID} if ($null -eq $ReleaseDefs) { throw "ReleaseDefinition with ID $ReleaseDefinitionID do not exist" } } foreach ($ReleaseDef in $ReleaseDefs) { $ReleaseDef.PSObject.TypeNames.Insert(0, 'PSADO.ADOReleaseDef') } $ReleaseDefs } |