Write-InvocationLog -Invocation $MyInvocation $elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters -DisableValidation $OwnerName = $elements.ownerName $RepositoryName = $elements.repositoryName $telemetryProperties = @{} $telemetryProperties['OwnerName'] = Get-PiiSafeString -PlainText $OwnerName $telemetryProperties['RepositoryName'] = Get-PiiSafeString -PlainText $RepositoryName $uriFragment = "repos/$OwnerName/$RepositoryName/releases" $description = "Getting releases for $OwnerName/$RepositoryName" if(-not [String]::IsNullOrEmpty($ReleaseId)) { $telemetryProperties['ProvidedReleaseId'] = $true $uriFragment += "/$ReleaseId" $description = "Getting release information for $ReleaseId from $OwnerName/$RepositoryName" } if($Latest) { $telemetryProperties['GetLatest'] = $true $uriFragment += "/latest" $description = "Getting latest release from $OwnerName/$RepositoryName" } if(-not [String]::IsNullOrEmpty($Tag)) { $telemetryProperties['ProvidedTag'] = $true $uriFragment += "/tags/$Tag" $description = "Getting releases tagged with $Tag from $OwnerName/$RepositoryName" } $params = @{ 'UriFragment' = $uriFragment 'Description' = $description 'AccessToken' = $AccessToken 'TelemetryEventName' = $MyInvocation.MyCommand.Name 'TelemetryProperties' = $telemetryProperties 'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus) } return Invoke-GHRestMethodMultipleResult @params