Public/Api/Core/Get-ProjectPropertiesList.ps1
function Get-ProjectPropertiesList { <# .SYNOPSIS Gets properties of given project. .PARAMETER CollectionUri Url for project collection on Azure DevOps server instance. If not specified, $global:AzureDevOpsApi_CollectionUri (set by Set-AzureDevopsVariables) is used. .PARAMETER Project Project to get. Can be passed as a name, identifier, full project URI, or object with any one these properties. If not specified, $global:AzureDevOpsApi_Project (set by Set-AzureDevopsVariables) is used. .PARAMETER Keys List of property keys to get. Wildcard characters ("?" and "*") are supported. If no key is specified, all properties will be returned. .NOTES https://learn.microsoft.com/en-us/rest/api/azure/devops/core/projects/get-project-properties?view=azure-devops-rest-5.0&tabs=HTTP #> [CmdletBinding(DefaultParameterSetName = 'Parameter')] param( [Parameter(ParameterSetName = 'Parameter', Position = 0)] [Parameter(ParameterSetName = 'Pipeline', Mandatory, ValueFromPipeline)] [AllowNull()] [AllowEmptyString()] [Alias('Uri')] $Project, [AllowNull()] [AllowEmptyString()] $CollectionUri, [Alias('Property', 'Properties')] $Keys = @() ) process { # Get connection to project $connection = Get-ApiProjectConnection ` -CollectionUri $CollectionUri ` -Project $Project # API needs $ProjectID $uri = Join-Uri ` -Base $connection.ProjectUri ` -Relative "properties" ` -NoTrailingSlash # GET https://dev.azure.com/{organization}/_apis/projects/{projectId}/properties?keys={keys}&api-version=5.1-preview.1 if ($connection.ApiVersion -notlike '*-preview*') { $connection.ApiVersion += '-preview.1' } # Add keys to retrieve as query parameters if ($Keys) { $joined = if ($Keys.Count -gt 0) { $Keys -join ',' } else { '*' } $uri = Add-QueryParameter -Uri $uri -Parameters ([PSCustomObject] @{ "keys" = $joined }) } # Make the call Invoke-ApiListPaged ` -ApiCredential $connection.ApiCredential ` -ApiVersion $connection.ApiVersion ` -Uri $uri } } |