repository

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2025 License: GPL-3.0 Imports: 14 Imported by: 0

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

View Source
const DefaultRemote = "origin"

DefaultRemote is the default remote name used for Git operations.

Variables

View Source
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

type LoadWorktreeOpts struct {
	IssueInfo *issue.Info
}

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

type ValidationParams struct {
	CurrentDir string
	Branch     string
}

ValidationParams contains parameters for repository validation.

type ValidationResult

type ValidationResult struct {
	RepoURL  string
	RepoPath string
}

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.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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