public/items/project_item_draftissue.ps1
|
Set-MyInvokeCommandAlias -Alias createDraftItem -Command 'Invoke-CreateDraftItem -ProjectId {projectid} -Title "{title}" -Body "{body}"' function New-ProjectDraftIssueDirect { [CmdletBinding()] param ( [Parameter()][string]$Owner, [Parameter()][string] $ProjectNumber, [Parameter(Mandatory,Position=0)][string]$Title, [Parameter(Position=1)][string]$Body, [Parameter()][switch]$NoCache, [Parameter()][switch]$OpenOnCreation ) ($Owner, $ProjectNumber) = Get-OwnerAndProjectNumber -Owner $Owner -ProjectNumber $ProjectNumber $db = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber $params = @{ title = $Title | ConvertTo-InvokeParameterString body = $Body | ConvertTo-InvokeParameterString projectid = $db.ProjectId } $params | ConvertTo-Json | Write-Verbose $response = Invoke-MyCommand -Command "createDraftItem" -Parameters $params $item = $response.data.addProjectV2DraftIssue.projectItem if ($item) { $ret = $item.id if (! $NoCache) { "Adding item [$ret] to cache" | Write-Verbose $item = $item | Convert-NodeItemToHash Set-Item $db $item Save-ProjectDatabaseSafe -Database $db } if( $OpenOnCreation ) { Open-Url $item.url } return $ret } else { "Item not added to project" | Write-MyError return $null } } Export-ModuleMember -Function New-ProjectDraftIssueDirect |