private/item/Get-ItemIdFromUrl.ps1
Set-MyInvokeCommandAlias -Alias GetItemId -Command 'Invoke-GetItemId -Url {url}' function Get-ItemIdFromUrl{ [CmdletBinding()] param( [Parameter(Mandatory,Position = 0)][string]$Url, [Parameter()][string]$Owner, [Parameter()][int]$ProjectNumber ) # figure out the projectID from environment if([string]::IsNullOrWhiteSpace($ProjectId)){ $project = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber -SkipItems if(-not $project){ "Project not found for Owner [$Owner] and ProjectNumber [$ProjectNumber]" | Write-MyError return $null } $projectId = $project.ProjectId } $params = @{ url = $Url } $response = Invoke-MyCommand -Command GetItemId -Parameters $params $nodes = $response.data.repository.issueOrPullRequest.projectItems.nodes if(-not $nodes){ "Query failed" | Write-MyError $ret = $null } # find the project reference in the nodes $node = $nodes | Where-Object { $_.project.id -eq $projectId } if($node){ $ret = $node.id } else { "Item not found for URL [$Url] on project with Owner [$Owner] ProjectNumber [$ProjectNumber] ProjectId [$projectId]" | Write-MyError $ret = $null } return $ret } Export-ModuleMember -Function Get-ItemIdFromUrl |