ado/policy/configurations/public/getPolicyConfiguration.ps1
function Get-AdoPolicyConfiguration { <# .SYNOPSIS Gets policy configurations for an Azure DevOps project. .DESCRIPTION This function retrieves policy configurations for an Azure DevOps project through REST API. .PARAMETER ProjectId Mandatory. The unique identifier or name of the project. .PARAMETER PolicyType Optional. The type of policy to retrieve. .NOTES - If PolicyType is not specified, all policy configurations are returned. .LINK https://learn.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/get .EXAMPLE $configurations = Get-AdoPolicyConfiguration -ProjectName 'my-project-001' .EXAMPLE $configuration = Get-AdoPolicyConfiguration -ProjectName 'my-project-001' -PolicyType '00000000-0000-0000-0000-000000000000' #> [CmdletBinding()] [OutputType([String])] param ( [Parameter(Mandatory)] [Alias('ProjectName')] [string]$ProjectId, [Parameter(Mandatory = $false)] [string]$PolicyType, [Parameter(Mandatory = $false)] [Alias('api')] [ValidateSet('7.1', '7.2-preview.1')] [string]$ApiVersion = '7.1' ) begin { Write-Verbose ('Command : {0}' -f $MyInvocation.MyCommand.Name) Write-Verbose (' ProjectId : {0}' -f $ProjectId) Write-Verbose (' PolicyType : {0}' -f $PolicyType) Write-Verbose (' ApiVersion : {0}' -f $ApiVersion) } process { try { $ErrorActionPreference = 'Stop' if (-not $global:AzDevOpsIsConnected) { throw 'Not connected to Azure DevOps. Please connect using Connect-AdoOrganization.' } if (-not $PolicyType) { $uriFormat = '{0}/{1}/_apis/policy/configurations?api-version={2}' $azDevOpsUri = ($uriFormat -f [uri]::new($global:AzDevOpsOrganization), $ProjectId, $ApiVersion) } else { $uriFormat = '{0}/{1}/_apis/policy/configurations?policyType={2}&api-version={3}' $azDevOpsUri = ($uriFormat -f [uri]::new($global:AzDevOpsOrganization), $ProjectId, [uri]::EscapeUriString($PolicyType), $ApiVersion) } $params = @{ Method = 'GET' Uri = $azDevOpsUri Headers = $global:AzDevOpsHeaders } $response = Invoke-RestMethod @params -Verbose:$VerbosePreference return $response } catch { throw $_ } } end { Write-Verbose ('Exit : {0}' -f $MyInvocation.MyCommand.Name) } } |