Public/Show-VSTeamBuildDefinition.ps1
function Show-VSTeamBuildDefinition { [CmdletBinding(DefaultParameterSetName = 'List')] param( [Parameter(ParameterSetName = 'List')] [string] $Filter, [Parameter(ParameterSetName = 'List')] [ValidateSet('Mine', 'All', 'Queued', 'XAML')] [string] $Type = 'All', [Parameter(ParameterSetName = 'ByID', Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [Alias('BuildDefinitionID')] [int[]] $Id, [Parameter(ParameterSetName = 'List')] [string] $Path = '\' ) DynamicParam { _buildProjectNameDynamicParam } process { # Bind the parameter to a friendly variable $ProjectName = $PSBoundParameters["ProjectName"] # Build the url $url = "$([VSTeamVersions]::Account)/$ProjectName/_build" if ($id) { $url += "/index?definitionId=$id" } else { switch ($type) { 'Mine' { $url += '/index?_a=mine&path=' } 'XAML' { $url += '/xaml&path=' } 'Queued' { $url += '/index?_a=queued&path=' } Default { # All $url += '/index?_a=allDefinitions&path=' } } # Make sure path starts with \ if ($Path[0] -ne '\') { $Path = '\' + $Path } $url += [System.Web.HttpUtility]::UrlEncode($Path) } Show-Browser $url } } |