TASK BACKLOG REFINEMENT ISSUE
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user