From f9c69650a757795d5e3ea86bffc4dec4d72c8e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20=28Dibildos=29=20Gonz=C3=A1lez?= Date: Tue, 10 Feb 2026 18:42:54 +0100 Subject: [PATCH 1/4] refactor(use_order): reorder parameter attributes for consistency --- public/items/use_order.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/items/use_order.ps1 b/public/items/use_order.ps1 index 4f1c85f..b25b8df 100644 --- a/public/items/use_order.ps1 +++ b/public/items/use_order.ps1 @@ -2,12 +2,12 @@ function Use-Order { [cmdletbinding()] [Alias("uo")] param( - [Parameter(Position = 0)][int]$Ordinal = -1, [Parameter(ValueFromPipeline)][array]$List, - [Parameter()][switch]$OpenInEditor, + [Parameter(Position = 0)][Alias("o")][int]$Ordinal = -1, + [Parameter()][Alias("e")][switch]$OpenInEditor, [Parameter()][Alias("w")][switch]$OpenInBrowser, - [Parameter()][switch]$PassThru, - [Parameter()][Alias("C")][switch]$ClearScreen + [Parameter()][Alias("p")][switch]$PassThru, + [Parameter()][Alias("c")][switch]$ClearScreen ) begin { From 24f08127cc8b7778281990cf94d64c7cbbabbe83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20=28Dibildos=29=20Gonz=C3=A1lez?= Date: Tue, 10 Feb 2026 18:43:03 +0100 Subject: [PATCH 2/4] fix(use_order): handle case when item with specified ordinal is not found --- public/items/use_order.ps1 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/items/use_order.ps1 b/public/items/use_order.ps1 index b25b8df..de325c9 100644 --- a/public/items/use_order.ps1 +++ b/public/items/use_order.ps1 @@ -43,6 +43,11 @@ function Use-Order { # Show a particular item $itemId = $finalList[$Ordinal].id + if($null -eq $itemId){ + Write-MyError "Item with ordinal $Ordinal not found." + return + } + #return item if($PassThru) { $i = Get-ProjectItem -ItemId $itemId From d87aeaa97d9865b9bb954f1473500e4e7bd80927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20=28Dibildos=29=20Gonz=C3=A1lez?= Date: Sat, 14 Feb 2026 09:22:13 +0100 Subject: [PATCH 3/4] feat(Add-ProjectSubIssue): implement Add-ProjectSubissueCreate function for creating subissues --- public/issues/Add-ProjectSubIssue.ps1 | 82 ++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/public/issues/Add-ProjectSubIssue.ps1 b/public/issues/Add-ProjectSubIssue.ps1 index 97e3f86..59271a3 100644 --- a/public/issues/Add-ProjectSubIssue.ps1 +++ b/public/issues/Add-ProjectSubIssue.ps1 @@ -6,8 +6,8 @@ function Add-ProjectSubIssueDirect { [Parameter()][string]$Owner, [Parameter()][string]$ProjectNumber, # [Parameter(Mandatory)][string]$IssueId, - [Parameter(Mandatory, ValueFromPipelineByPropertyName, ValueFromPipeline, Position = 0)][Alias("id")][string]$ItemId, - [Parameter(Mandatory, Position = 1)][string]$SubIssueUrl, + [Parameter(Mandatory, Position = 0)][string]$ItemId, + [Parameter(Mandatory, ValueFromPipeline, Position = 1)][Alias("url")][string]$SubIssueUrl, [Parameter()][switch]$ReplaceParent ) @@ -60,6 +60,84 @@ function Add-ProjectSubIssueDirect { } Export-ModuleMember -Function Add-ProjectSubIssueDirect + +function Add-ProjectSubissueCreate { + [CmdletBinding()] + [Alias("New-Issue")] + param ( + [Parameter(Mandatory, Position = 0)][string]$ItemId, + [Parameter(Position = 1)][string]$RepoOwner, + [Parameter(Position = 2)][string]$RepoName, + [Parameter(Mandatory, Position = 3)][string]$Title, + [Parameter(Position = 4)][string]$Body, + + [Parameter()][string]$ProjectOwner, + [Parameter()][string]$ProjectNumber, + + [Parameter()][switch]$OpenOnCreation, + [Parameter()][switch]$AddToProject + ) + + # Get Parent item + $ProjectOwner,$ProjectNumber = Get-OwnerAndProjectNumber -Owner $ProjectOwner -ProjectNumber $ProjectNumber + $item = Get-ProjectItem -ItemId $ItemId -Owner $ProjectOwner -ProjectNumber $ProjectNumber + if($null -eq $Item){ + Write-MyError "Parent ItemId [$ItemId] not found on project $ProjectOwner/$ProjectNumber" + return + } + + # resolve the repo + $repoO = ( [string]::IsNullOrWhiteSpace($RepoOwner) ) ? $item.RepositoryOwner : $RepoOwner + $repoN = ( [string]::IsNullOrWhiteSpace($RepoName) ) ? $item.RepositoryName : $RepoName + + if([string]::IsNullOrWhiteSpace($repoO) -or [string]::IsNullOrWhiteSpace($repoN)){ + Write-MyError "Repository owner and name are required" + return + } + + # + $repo = Get-Repository -Owner $repoO -Name $repoN + + if( ! $repo ) { + "Repository $repoO/$repoN not found" | Write-MyError + return $null + } + + $params = @{ + RepoName = $repoN + RepoOwner = $repoO + Title = $Title + Body = $Body + } + + $url = New-ProjectIssueDirect @params + Write-Host $url + + $params = @{ + Owner = $ProjectOwner + ProjectNumber = $ProjectNumber + SubIssueUrl = $url + ItemId = $ItemId + } + $result = Add-ProjectSubIssueDirect @params + if($result) + { Write-MyHost "SubIssue added successfully" } + else {Write-MyError "Failed to add SubIssue" ; return} + + # Add to project + if($AddToProject){ + $subissueId = Add-ProjectItem -Url $url -Owner $ProjectOwner -ProjectNumber $ProjectNumber + Write-Host $subissueId + } + + # Open + if($OpenOnCreation){ + Open-Url -Url $url + } + +} Export-ModuleMember -Function Add-ProjectSubissueCreate + + function addSubIssue { [cmdletbinding()] param( From 260457f5de7e3e979e63b923245b0abdf6b0f1b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20=28Dibildos=29=20Gonz=C3=A1lez?= Date: Sat, 14 Feb 2026 09:22:27 +0100 Subject: [PATCH 4/4] feat(New-ProjectIssue): add OpenOnCreation switch to open issue URL upon creation --- public/issues/New-ProjectIssue.ps1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/public/issues/New-ProjectIssue.ps1 b/public/issues/New-ProjectIssue.ps1 index a74437c..ad838b8 100644 --- a/public/issues/New-ProjectIssue.ps1 +++ b/public/issues/New-ProjectIssue.ps1 @@ -53,7 +53,8 @@ function New-ProjectIssue { [Parameter(Mandatory, Position = 1)][string]$RepoOwner, [Parameter(Mandatory, Position = 2)][string]$RepoName, [Parameter(Mandatory, Position = 3)][string]$Title, - [Parameter(Position = 4)][string]$Body + [Parameter(Position = 4)][string]$Body, + [Parameter()][switch]$OpenOnCreation ) try{ @@ -71,6 +72,10 @@ function New-ProjectIssue { $itemId = Add-ProjectItem -Owner $ProjectOwner -ProjectNumber $ProjectNumber -Url $url + if( $OpenOnCreation ) { + Open-Url $url + } + return $itemId } catch{