Skip to content

Commit 463982f

Browse files
New-ADOWorkItem: Allowing shared queries to use -ValidateOnly
1 parent cc8cf71 commit 463982f

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

New-ADOWorkItem.ps1

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
[OutputType('PSDevOps.WorkItem')]
1616
param(
1717
# The InputObject
18-
[Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName,ParameterSetName='WorkItem')]
18+
[Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName,ParameterSetName='WorkItem')]
1919
[PSObject]
2020
$InputObject,
2121

@@ -51,7 +51,7 @@
5151
[Parameter(ParameterSetName='SharedQuery',ValueFromPipelineByPropertyName)]
5252
[ValidateSet('childFirst','parentFirst')]
5353
[string]
54-
$QueryRecursiveOption,
54+
$QueryRecursiveOption,
5555

5656
# If provided, create a shared query folder.
5757
[Parameter(Mandatory, ParameterSetName='SharedQueryFolder',ValueFromPipelineByPropertyName)]
@@ -97,7 +97,7 @@
9797
$BypassRule,
9898

9999
# If set, will only validate rules, but will not update the work item.
100-
[Parameter(ValueFromPipelineByPropertyName,ParameterSetName='WorkItem')]
100+
[Parameter(ValueFromPipelineByPropertyName)]
101101
[Alias('ValidateRules','ValidateRule','CheckRule','CheckRules')]
102102
[switch]
103103
$ValidateOnly,
@@ -194,7 +194,7 @@
194194
}
195195
#endregion Output Work Item
196196

197-
197+
198198

199199
$q = [Collections.Queue]::new()
200200
}
@@ -228,16 +228,16 @@
228228
}
229229

230230
$queryPathParts = @($QueryPath -split '/')
231-
$sharedQueries = $null
232-
foreach ($qp in $queryPathParts) {
231+
$sharedQueries = $null
232+
foreach ($qp in $queryPathParts) {
233233
if (-not ($qp -as [guid])) {
234234
$sharedQueries = Get-ADOWorkItem -SharedQuery @orgAndProject -Depth 2
235235
break
236236
}
237237
}
238238

239239
if ($sharedQueries) {
240-
$queryPathId = $sharedQueries |
240+
$queryPathId = $sharedQueries |
241241
Where-Object Path -eq $QueryPath |
242242
Select-Object -ExpandProperty ID
243243
if (-not $queryPathId) {
@@ -246,16 +246,17 @@
246246
} else {
247247
$QueryPath = $queryPathId
248248
}
249-
}
249+
}
250250

251251
$uri = $uriBase, "_apis/wit/queries", $(if ($QueryPath) { $QueryPath }) -ne '' -join '/'
252252
$uri = $uri.ToString().TrimEnd('/')
253-
$uri += '?' +
254-
@(
255-
if ($ApiVersion) {"api-version=$ApiVersion" }
256-
) -join '&'
253+
$uri += '?' +
254+
(@(
255+
if ($ApiVersion) { "api-version=$ApiVersion" }
256+
if ($validateOnly) { "validateWiqlOnly=true" }
257+
) -join '&')
257258
$invokeParams.uri = $uri
258-
259+
259260
$queryObject = @{}
260261
if ($psParameterSet -eq 'SharedQueryFolder') {
261262
$queryObject['name'] = $FolderName
@@ -266,9 +267,11 @@
266267
if ($queryRecursionOption) {
267268
$queryObject['queryRecursionOption'] = $queryRecursionOption
268269
}
270+
269271
} else {
270272
$queryObject['name'] = $QueryName
271273
$queryObject['wiql'] = $WIQL
274+
272275
}
273276

274277
$invokeParams.Body = ConvertTo-Json $queryObject -Depth 100
@@ -284,7 +287,7 @@
284287
$invokeParams
285288
continue
286289
}
287-
290+
288291
if (-not $PSCmdlet.ShouldProcess("POST $uri with $($invokeParams.body)")) { continue }
289292
$restResponse = Invoke-ADORestAPI @invokeParams 2>&1
290293
$restResponse

0 commit comments

Comments
 (0)