closecmd

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package closecmd provides the command to close a work item (issue).

Index

Constants

This section is empty.

Variables

View Source
var CloseCmd = &cobra.Command{
	Use:     "close <issue-number>",
	Short:   "Closes a specific issue.",
	Example: "  contextvibes project issues close 29",
	Args:    cobra.ExactArgs(1),
	RunE: func(cmd *cobra.Command, args []string) error {
		presenter := ui.NewPresenter(cmd.OutOrStdout(), cmd.ErrOrStderr())
		ctx := cmd.Context()

		issueNumber, err := strconv.Atoi(args[0])
		if err != nil {

			return errors.New("invalid issue number provided")
		}

		provider, err := newProvider(ctx, globals.AppLogger, globals.LoadedAppConfig)
		if err != nil {
			presenter.Error("Failed to initialize work item provider: %v", err)

			return err
		}

		presenter.Step("Fetching issue #%d...", issueNumber)
		item, err := provider.GetItem(ctx, issueNumber, false)
		if err != nil {
			presenter.Error("Failed to fetch issue: %v", err)

			return fmt.Errorf("failed to get item: %w", err)
		}

		if item.State == workitem.StateClosed {
			presenter.Info("Issue #%d is already closed.", issueNumber)

			return nil
		}

		item.State = workitem.StateClosed

		presenter.Step("Closing issue #%d...", issueNumber)
		_, err = provider.UpdateItem(ctx, issueNumber, *item)
		if err != nil {
			presenter.Error("Failed to close issue: %v", err)

			return fmt.Errorf("failed to update item: %w", err)
		}

		presenter.Success("✓ Issue #%d closed successfully.", issueNumber)

		return nil
	},
}

CloseCmd represents the project issues close command.

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL