TASK BACKLOG REFINEMENT ISSUE

This commit is contained in:
Ine Maria Nilssen Aanonsen
2026-03-06 12:52:13 +01:00
parent f371f9a8e9
commit 68054f7409
11 changed files with 377 additions and 103 deletions

View File

@@ -7,8 +7,6 @@ import (
"github.com/spf13/cobra"
)
// CloseCmd represents the close command,
// which allows users to close an existing issue by its ID.
var CloseCmd = &cobra.Command{
Use: "close [id]",
Short: "Close an existing issue",
@@ -21,8 +19,6 @@ var CloseCmd = &cobra.Command{
ValidArgsFunction: completeIssues,
}
// runCloseCmd executes the close command logic,
// which closes an issue by its ID after confirming with the user.
func runCloseCmd(cmd *cobra.Command, args []string) error {
closeID := args[0]
@@ -42,14 +38,27 @@ func runCloseCmd(cmd *cobra.Command, args []string) error {
return fmt.Errorf("issue with ID %s not found", closeID)
}
// Ask for closing reason
if err = huh.NewInput().Value(&issue.CloseReason).
Title("Reason for closing the issue?").WithTheme(huh.ThemeBase()).Run(); err != nil {
closeReason := ""
if err = huh.NewSelect[string]().Value(&closeReason).
Title("Reason for closing the issue?").
Options(
huh.NewOption("Done", "Done"),
huh.NewOption("Duplicate issue", "Duplicate issue"),
huh.NewOption("Won't fix", "Won't fix"),
huh.NewOption("Obsolete", "Obsolete"),
huh.NewOption("Other", "Other"),
).WithTheme(huh.ThemeBase()).Run(); err != nil {
return fmt.Errorf("error getting close reason: %w", err)
}
// Close the issue.
err = app.Issues.CloseIssue(cmd.Context(), closeID, issue.CloseReason, "", "")
if closeReason == "Other" {
if err = huh.NewInput().Value(&closeReason).
Title("Enter closing reason:").WithTheme(huh.ThemeBase()).Run(); err != nil {
return fmt.Errorf("error getting close reason: %w", err)
}
}
err = app.Issues.CloseIssue(cmd.Context(), closeID, closeReason, "", "")
if err != nil {
return fmt.Errorf("error closing issue: %w", err)
}