Public/Core/Processes/Get-AdoProcess.ps1
|
function Get-AdoProcess { <# .SYNOPSIS Retrieves Azure DevOps process details. .DESCRIPTION This cmdlet retrieves details of one or more Azure DevOps processes within a specified organization. You can retrieve all processes or a specific process by name. .PARAMETER CollectionUri Optional. The collection URI of the Azure DevOps collection/organization, e.g., https://dev.azure.com/my-org. .PARAMETER Name Optional. The name of the process to retrieve. If not provided, retrieves all processes. .PARAMETER Version Optional. The API version to use for the request. Default is '7.1'. .LINK https://learn.microsoft.com/en-us/rest/api/azure/devops/core/processes/list .EXAMPLE $params = @{ CollectionUri = 'https://dev.azure.com/my-org' } Get-AdoProcess @params Retrieves all available processes from the specified organization. .EXAMPLE $params = @{ CollectionUri = 'https://dev.azure.com/my-org' } Get-AdoProcess @params -Name 'Agile' Retrieves the specified process by name. .EXAMPLE $params = @{ CollectionUri = 'https://dev.azure.com/my-org' } @('Agile', 'Scrum') | Get-AdoProcess @params -Verbose Retrieves multiple processes by name demonstrating pipeline input. #> [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(ValueFromPipelineByPropertyName)] [ValidateScript({ Confirm-CollectionUri -Uri $_ })] [string]$CollectionUri = $env:DefaultAdoCollectionUri, [Parameter(ValueFromPipelineByPropertyName, ValueFromPipeline)] [Alias('Process', 'ProcessName')] [ValidateSet('Agile', 'Scrum', 'CMMI', 'Basic')] [string]$Name, [Parameter()] [Alias('ApiVersion')] [ValidateSet('7.1', '7.2-preview.1')] [string]$Version = '7.1' ) begin { Write-Verbose ("Command: $($MyInvocation.MyCommand.Name)") Write-Debug ("CollectionUri: $CollectionUri") Write-Debug ("Name: $Name") Write-Debug ("Version: $Version") Confirm-Default -Defaults ([ordered]@{ 'CollectionUri' = $CollectionUri }) } process { try { $params = @{ Uri = "$CollectionUri/_apis/process/processes" Version = $Version Method = 'GET' } if ($PSCmdlet.ShouldProcess($CollectionUri, $Name ? "Get Process: $Name" : 'Get Processes')) { $results = Invoke-AdoRestMethod @params $processes = $results.value if ($Name) { $processes = $processes | Where-Object { $_.name -eq $Name } } foreach ($p_ in $processes) { [PSCustomObject]@{ id = $p_.id name = $p_.name description = $p_.description url = $p_.url type = $p_.type isDefault = $p_.isDefault collectionUri = $CollectionUri } } } else { Write-Verbose "Calling Invoke-AdoRestMethod with $($params | ConvertTo-Json -Depth 10)" } } catch { throw $_ } } end { Write-Verbose ("Exit: $($MyInvocation.MyCommand.Name)") } } |