Public/Get-TFSWIQLQueryResults.ps1
function Get-TFSWIQLQueryResults{ <# .Synopsis Please give your script a brief Synopsis, .DESCRIPTION A slightly longer description, .PARAMETER logLevel explain your parameters here. Create a new .PARAMETER line for each parameter, .EXAMPLE THis example runs the script with a change to the logLevel parameter. .Template.ps1 -logLevel Debug .INPUTS What sort of pipeline inputdoes this expect? .OUTPUTS What sort of pipeline output does this output? .LINK www.google.com #> [CmdletBinding(SupportsShouldProcess=$true)] param([Parameter(ValueFromPipeline)] $pipelineInput ,[string] $query) $outputObj = New-Object PSObject $outputObj | Add-Member -Type NoteProperty -Name repository -Value $pipelineInput.Repository $repositoryID = $pipelineInput.repository.id if ([String]::IsNullOrEmpty($repositoryID)){ Write-Log "Please pass a repositoryID" Error -ErrorAction Stop } if ([String]::IsNullOrEmpty($query)){ Write-Log "Please pass a query" Error -ErrorAction Stop } $BaseTFSURL = Get-TFSRestURL $action = "/_apis/wit/wiql?api-version=$($script:apiVersion)" $fullURL = $BaseTFSURL + $action Write-Log "URL we are calling: $fullURL" Debug $requestBody = @" { "query": "$query" } "@ $queryOut = New-Object PSObject $queryOut | Add-Member -type NoteProperty -Name QueryText -Value $query $queryOut | Add-Member -type NoteProperty -Name QueryResult -Value $null $response = Invoke-RestMethod -UseDefaultCredentials -uri $fullURL -Method POST -Body $requestBody -ContentType "application/json" -Headers (Get-TFSHeader) $queryOut.QueryResult = $response if ([bool]($outputObj.PSobject.Properties.name -match "QueryResults")){ $outputObj.QueryResults += $queryOut } else{ $outputObj | Add-Member -type NoteProperty -Name "QueryResults" -value @() $outputObj.QueryResults += $queryOut } Write-Output $outputObj } Export-ModuleMember -Function Get-TFSWIQLQueryResults |