cmdutil

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: May 14, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package cmdutil provides utilities for command implementation

Index

Constants

View Source
const (
	ExitSuccess  = 0
	ExitError    = 1
	ExitUsage    = 2
	ExitNotFound = 3
	ExitAuth     = 4
	ExitConflict = 5
)
View Source
const FlagEnumAnnotation = "gc.enum"
View Source
const TopicAnnotation = "gc.topic"

Variables

View Source
var StandardTopics = []string{
	"auth",
	"issues",
	"pull-requests",
	"releases",
	"milestones",
	"repo",
	"commits",
	"labels",
}

StandardTopics is the list of standard topic categories.

Functions

func AddFormatFlag added in v0.3.11

func AddFormatFlag(cmd *cobra.Command, target *string)

AddFormatFlag adds a consistent format flag to a command.

func AddJSONFlag added in v0.3.7

func AddJSONFlag(cmd *cobra.Command, target *bool)

AddJSONFlag adds a consistent JSON output flag to a command.

func AddTemplateFlag added in v0.3.11

func AddTemplateFlag(cmd *cobra.Command, target *string)

AddTemplateFlag adds a consistent template flag to a command.

func AddTimeFormatFlag added in v0.3.11

func AddTimeFormatFlag(cmd *cobra.Command, target *string)

AddTimeFormatFlag adds a consistent time-format flag to a command.

func AuthenticatedClient added in v0.4.0

func AuthenticatedClient(httpClient *http.Client) (*api.Client, error)

AuthenticatedClient creates an API client using the configured default host and active token. Environment tokens keep their existing priority.

func AuthenticatedClientFromFactory added in v0.4.0

func AuthenticatedClientFromFactory(httpClient func() (*http.Client, error)) (*api.Client, error)

AuthenticatedClientFromFactory creates an authenticated API client from the command factory dependencies.

func ConfirmOrAbort added in v0.3.7

func ConfirmOrAbort(opts ConfirmOptions) error

ConfirmOrAbort enforces a shared confirmation flow.

func EnvToken added in v0.3.7

func EnvToken() string

EnvToken returns the active token from supported environment variables.

func ExitCode added in v0.3.7

func ExitCode(err error) int

ExitCode maps a command error to a stable process exit code.

func FormatAPIID added in v0.3.7

func FormatAPIID(id interface{}) string

FormatAPIID normalizes API IDs that may arrive as strings or JSON numbers.

func NewAuthError added in v0.3.7

func NewAuthError(message string) error

func NewCLIError added in v0.3.7

func NewCLIError(code int, message string, cause error) error

NewCLIError creates a CLIError with a stable exit code.

func NewConflictError added in v0.5.0

func NewConflictError(message string) error

func NewNotFoundError added in v0.3.7

func NewNotFoundError(message string, cause error) error

func NewUsageError added in v0.3.7

func NewUsageError(message string) error

func ParseRepo added in v0.3.7

func ParseRepo(repo string) (string, string, error)

ParseRepo parses a repository reference and returns the owner and repository name. It supports owner/repo, HTTPS URLs, and SSH URLs.

func ResolvePRURL added in v0.5.0

func ResolvePRURL(htmlURL, owner, repo string, number int) string

ResolvePRURL returns the PR URL with fallback logic. If the API-provided URL is empty, it constructs one from owner/repo/number.

func ResolveRepo added in v0.3.7

func ResolveRepo(repo string, baseRepo func() (string, error)) (string, error)

ResolveRepo returns the explicit repository when provided, otherwise tries to infer it from the current git repository.

func SetFlagEnum added in v0.4.0

func SetFlagEnum(cmd *cobra.Command, name string, values ...string)

SetFlagEnum records a stable enum set for schema/export consumers.

func SetTopicAnnotation added in v0.4.0

func SetTopicAnnotation(cmd *cobra.Command, topic string)

SetTopicAnnotation adds a topic annotation to a command.

func WrapNotFound added in v0.5.0

func WrapNotFound(err error, format string, args ...interface{}) error

WrapNotFound wraps an error as NotFoundError if it's a 404 API error. Returns the original error if it's not a 404. Usage: return cmdutil.WrapNotFound(err, "issue #%d not found in %s/%s", number, owner, repo)

func WriteJSON added in v0.3.7

func WriteJSON(w io.Writer, value interface{}) error

WriteJSON writes indented JSON to the target writer.

Types

type CLIError added in v0.3.7

type CLIError struct {
	Code    int
	Message string
	Cause   error
}

CLIError represents a stable CLI-facing error with an exit code.

func (*CLIError) Error added in v0.3.7

func (e *CLIError) Error() string

func (*CLIError) Unwrap added in v0.3.7

func (e *CLIError) Unwrap() error

type ConfirmOptions added in v0.3.7

type ConfirmOptions struct {
	IO       *iostreams.IOStreams
	Yes      bool
	Expected string
	Prompt   string
}

ConfirmOptions controls destructive-action confirmation prompts.

type Factory

type Factory struct {
	IOStreams  *iostreams.IOStreams
	HttpClient func() (*http.Client, error)
	Config     func() (config.Config, error)
	BaseRepo   func() (string, error)
	Branch     func() (string, error)
}

Factory provides dependencies for commands

func NewFactory

func NewFactory() *Factory

NewFactory creates a new Factory with default settings

func TestFactory

func TestFactory() *Factory

TestFactory creates a Factory for testing

Source Files

  • auth.go
  • confirm.go
  • errors.go
  • factory.go
  • flag_annotations.go
  • format.go
  • output.go
  • repo.go

Jump to

Keyboard shortcuts

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