diff --git a/cmd/bd/show.go b/cmd/bd/show.go index af885828..0ea31106 100644 --- a/cmd/bd/show.go +++ b/cmd/bd/show.go @@ -972,6 +972,10 @@ var closeCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { CheckReadonly("close") reason, _ := cmd.Flags().GetString("reason") + // Check --resolution alias if --reason not provided + if reason == "" { + reason, _ = cmd.Flags().GetString("resolution") + } if reason == "" { reason = "Closed" } @@ -1411,6 +1415,8 @@ func init() { rootCmd.AddCommand(editCmd) closeCmd.Flags().StringP("reason", "r", "", "Reason for closing") + closeCmd.Flags().String("resolution", "", "Alias for --reason (Jira CLI convention)") + _ = closeCmd.Flags().MarkHidden("resolution") // Hidden alias for agent/CLI ergonomics closeCmd.Flags().Bool("json", false, "Output JSON format") closeCmd.Flags().BoolP("force", "f", false, "Force close pinned issues") closeCmd.Flags().Bool("continue", false, "Auto-advance to next step in molecule") diff --git a/cmd/bd/testdata/close_resolution_alias.txt b/cmd/bd/testdata/close_resolution_alias.txt new file mode 100644 index 00000000..fe48f164 --- /dev/null +++ b/cmd/bd/testdata/close_resolution_alias.txt @@ -0,0 +1,16 @@ +# Test bd close --resolution alias (GH#721) +# Jira CLI convention: --resolution instead of --reason +bd init --prefix test + +# Create issue +bd create 'Issue to close with resolution' +cp stdout issue.txt +exec sh -c 'grep -oE "test-[a-z0-9]+" issue.txt > issue_id.txt' + +# Close using --resolution alias +exec sh -c 'bd close $(cat issue_id.txt) --resolution "Fixed via resolution alias"' +stdout 'Closed test-' + +# Verify close_reason is set correctly +exec sh -c 'bd show $(cat issue_id.txt) --json' +stdout 'Fixed via resolution alias'