Documentation
¶
Overview ¶
Package repository provides Git repository management functionality for CM.
Package repository provides repository management functionality and error definitions.
Package repository provides Git repository management functionality for CM.
Package repository provides Git repository management functionality for CM.
Package repository provides Git repository management functionality for CM.
Package repository provides Git repository management functionality for CM.
Index ¶
Constants ¶
const DefaultRemote = "origin"
DefaultRemote is the default remote name used for Git operations.
Variables ¶
var ( // Git repository errors. ErrGitRepositoryNotFound = errors.New("not a valid Git repository: .git directory not found") ErrGitRepositoryInvalid = errors.New("git repository is in an invalid state") ErrNotAGitRepository = errors.New("not a Git repository: .git directory not found") // Worktree errors. ErrWorktreeExists = errors.New("worktree already exists") ErrWorktreeNotInStatus = errors.New("worktree not found in status file") // Repository state errors. ErrRepositoryNotClean = errors.New("repository is not clean") ErrDirectoryExists = errors.New("directory already exists") // User interaction errors. ErrDeletionCancelled = errors.New("deletion cancelled by user") // Remote errors. ErrOriginRemoteNotFound = errors.New("origin remote not found or invalid") ErrOriginRemoteInvalidURL = errors.New("origin remote URL is not a valid Git hosting service URL") )
Error definitions for repository package.
Functions ¶
This section is empty.
Types ¶
type CreateWorktreeOpts ¶
type CreateWorktreeOpts struct { IDEName string IssueInfo *issue.Info WorkspaceName string Remote string // Remote name to use (defaults to DefaultRemote if empty) }
CreateWorktreeOpts contains optional parameters for worktree creation in repository mode.
type LoadWorktreeOpts ¶
LoadWorktreeOpts contains optional parameters for LoadWorktree.
type NewRepositoryParams ¶
type NewRepositoryParams struct { FS fs.FS Git git.Git Config config.Config StatusManager status.Manager Logger logger.Logger Prompt prompt.Prompter WorktreeProvider WorktreeProvider HookManager hooks.HookManagerInterface RepositoryName string // Name/Path of the repository (optional, defaults to current directory) }
NewRepositoryParams contains parameters for creating a new Repository instance.
type Repository ¶
type Repository interface { Validate() error CreateWorktree(branch string, opts ...CreateWorktreeOpts) (string, error) DeleteWorktree(branch string, force bool) error DeleteAllWorktrees(force bool) error ListWorktrees() ([]status.WorktreeInfo, error) SetLogger(logger logger.Logger) LoadWorktree(remoteSource, branchName string) (string, error) IsGitRepository() (bool, error) ValidateGitConfiguration(workDir string) error ValidateGitStatus() error ValidateRepository(params ValidationParams) (*ValidationResult, error) ValidateWorktreeExists(repoURL, branch string) error ValidateOriginRemote() error HandleRemoteManagement(repoURL string) error ExtractHostFromURL(url string) string DetermineProtocol(url string) string ExtractRepoNameFromFullPath(fullPath string) string ConstructRemoteURL(originURL, remoteSource, repoName string) (string, error) AddWorktreeToStatus(params StatusParams) error AutoAddRepositoryToStatus(repoURL, repoPath string) error }
Repository interface provides repository management capabilities.
func NewRepository ¶
func NewRepository(params NewRepositoryParams) Repository
NewRepository creates a new Repository instance.
type StatusParams ¶
type StatusParams struct { RepoURL string Branch string WorktreePath string WorkspacePath string Remote string IssueInfo *issue.Info }
StatusParams contains parameters for status operations.
type ValidationParams ¶
ValidationParams contains parameters for repository validation.
type ValidationResult ¶
ValidationResult contains the result of repository validation.
type WorktreeProvider ¶
type WorktreeProvider func(params worktree.NewWorktreeParams) worktree.Worktree
WorktreeProvider is a function type that creates worktree instances.