repository

package
v0.18.1 Latest Latest
Warning

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

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

Documentation

Overview

Package repository provides repository management functionality and error definitions.

Package repository is a generated GoMock package.

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")

	// 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 {
	IssueInfo *issue.Info
}

CreateWorktreeOpts contains optional parameters for CreateWorktree.

type MockRepository

type MockRepository struct {
	// contains filtered or unexported fields
}

MockRepository is a mock of Repository interface.

func NewMockRepository

func NewMockRepository(ctrl *gomock.Controller) *MockRepository

NewMockRepository creates a new mock instance.

func (*MockRepository) AddNewRemote

func (m *MockRepository) AddNewRemote(remoteSource string) error

AddNewRemote mocks base method.

func (*MockRepository) AddWorktreeToStatus

func (m *MockRepository) AddWorktreeToStatus(params StatusParams) error

AddWorktreeToStatus mocks base method.

func (*MockRepository) AutoAddRepositoryToStatus

func (m *MockRepository) AutoAddRepositoryToStatus(repoURL, repoPath string) error

AutoAddRepositoryToStatus mocks base method.

func (*MockRepository) CleanupOnWorktreeCreationFailure

func (m *MockRepository) CleanupOnWorktreeCreationFailure(repoURL, branch, worktreePath string)

CleanupOnWorktreeCreationFailure mocks base method.

func (*MockRepository) CleanupWorktreeDirectory

func (m *MockRepository) CleanupWorktreeDirectory(worktreePath string)

CleanupWorktreeDirectory mocks base method.

func (*MockRepository) ConstructRemoteURL

func (m *MockRepository) ConstructRemoteURL(originURL, remoteSource, repoName string) (string, error)

ConstructRemoteURL mocks base method.

func (*MockRepository) CreateWorktree

func (m *MockRepository) CreateWorktree(branch string, opts ...CreateWorktreeOpts) error

CreateWorktree mocks base method.

func (*MockRepository) DeleteWorktree

func (m *MockRepository) DeleteWorktree(branch string, force bool) error

DeleteWorktree mocks base method.

func (*MockRepository) DetermineProtocol

func (m *MockRepository) DetermineProtocol(originURL string) string

DetermineProtocol mocks base method.

func (*MockRepository) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockRepository) ExtractHostFromURL

func (m *MockRepository) ExtractHostFromURL(url string) string

ExtractHostFromURL mocks base method.

func (*MockRepository) ExtractRepoNameFromFullPath

func (m *MockRepository) ExtractRepoNameFromFullPath(fullPath string) string

ExtractRepoNameFromFullPath mocks base method.

func (*MockRepository) HandleExistingRemote

func (m *MockRepository) HandleExistingRemote(remoteSource string) error

HandleExistingRemote mocks base method.

func (*MockRepository) HandleRemoteManagement

func (m *MockRepository) HandleRemoteManagement(remoteSource string) error

HandleRemoteManagement mocks base method.

func (*MockRepository) HandleRepositoryNotFoundError

func (m *MockRepository) HandleRepositoryNotFoundError(params StatusParams) error

HandleRepositoryNotFoundError mocks base method.

func (*MockRepository) HandleStatusAddError

func (m *MockRepository) HandleStatusAddError(err error, params StatusParams) error

HandleStatusAddError mocks base method.

func (*MockRepository) IsGitRepository

func (m *MockRepository) IsGitRepository() (bool, error)

IsGitRepository mocks base method.

func (*MockRepository) IsWorkspaceFile

func (m *MockRepository) IsWorkspaceFile() (bool, error)

IsWorkspaceFile mocks base method.

func (*MockRepository) ListWorktrees

func (m *MockRepository) ListWorktrees() ([]status.WorktreeInfo, error)

ListWorktrees mocks base method.

func (*MockRepository) LoadWorktree

func (m *MockRepository) LoadWorktree(remoteSource, branchName string) error

LoadWorktree mocks base method.

func (*MockRepository) ParseConfirmationInput

func (m *MockRepository) ParseConfirmationInput(input string) (bool, error)

ParseConfirmationInput mocks base method.

func (*MockRepository) RemoveWorktreeFromStatus

func (m *MockRepository) RemoveWorktreeFromStatus(repoURL, branch string) error

RemoveWorktreeFromStatus mocks base method.

func (*MockRepository) Validate

func (m *MockRepository) Validate() error

Validate mocks base method.

func (*MockRepository) ValidateGitStatus

func (m *MockRepository) ValidateGitStatus() error

ValidateGitStatus mocks base method.

func (*MockRepository) ValidateOriginRemote

func (m *MockRepository) ValidateOriginRemote() error

ValidateOriginRemote mocks base method.

func (*MockRepository) ValidateRepository

func (m *MockRepository) ValidateRepository(params ValidationParams) (*ValidationResult, error)

ValidateRepository mocks base method.

func (*MockRepository) ValidateWorktreeExists

func (m *MockRepository) ValidateWorktreeExists(repoURL, branch string) error

ValidateWorktreeExists mocks base method.

type MockRepositoryMockRecorder

type MockRepositoryMockRecorder struct {
	// contains filtered or unexported fields
}

MockRepositoryMockRecorder is the mock recorder for MockRepository.

func (*MockRepositoryMockRecorder) AddNewRemote

func (mr *MockRepositoryMockRecorder) AddNewRemote(remoteSource any) *gomock.Call

AddNewRemote indicates an expected call of AddNewRemote.

func (*MockRepositoryMockRecorder) AddWorktreeToStatus

func (mr *MockRepositoryMockRecorder) AddWorktreeToStatus(params any) *gomock.Call

AddWorktreeToStatus indicates an expected call of AddWorktreeToStatus.

func (*MockRepositoryMockRecorder) AutoAddRepositoryToStatus

func (mr *MockRepositoryMockRecorder) AutoAddRepositoryToStatus(repoURL, repoPath any) *gomock.Call

AutoAddRepositoryToStatus indicates an expected call of AutoAddRepositoryToStatus.

func (*MockRepositoryMockRecorder) CleanupOnWorktreeCreationFailure

func (mr *MockRepositoryMockRecorder) CleanupOnWorktreeCreationFailure(repoURL, branch, worktreePath any) *gomock.Call

CleanupOnWorktreeCreationFailure indicates an expected call of CleanupOnWorktreeCreationFailure.

func (*MockRepositoryMockRecorder) CleanupWorktreeDirectory

func (mr *MockRepositoryMockRecorder) CleanupWorktreeDirectory(worktreePath any) *gomock.Call

CleanupWorktreeDirectory indicates an expected call of CleanupWorktreeDirectory.

func (*MockRepositoryMockRecorder) ConstructRemoteURL

func (mr *MockRepositoryMockRecorder) ConstructRemoteURL(originURL, remoteSource, repoName any) *gomock.Call

ConstructRemoteURL indicates an expected call of ConstructRemoteURL.

func (*MockRepositoryMockRecorder) CreateWorktree

func (mr *MockRepositoryMockRecorder) CreateWorktree(branch any, opts ...any) *gomock.Call

CreateWorktree indicates an expected call of CreateWorktree.

func (*MockRepositoryMockRecorder) DeleteWorktree

func (mr *MockRepositoryMockRecorder) DeleteWorktree(branch, force any) *gomock.Call

DeleteWorktree indicates an expected call of DeleteWorktree.

func (*MockRepositoryMockRecorder) DetermineProtocol

func (mr *MockRepositoryMockRecorder) DetermineProtocol(originURL any) *gomock.Call

DetermineProtocol indicates an expected call of DetermineProtocol.

func (*MockRepositoryMockRecorder) ExtractHostFromURL

func (mr *MockRepositoryMockRecorder) ExtractHostFromURL(url any) *gomock.Call

ExtractHostFromURL indicates an expected call of ExtractHostFromURL.

func (*MockRepositoryMockRecorder) ExtractRepoNameFromFullPath

func (mr *MockRepositoryMockRecorder) ExtractRepoNameFromFullPath(fullPath any) *gomock.Call

ExtractRepoNameFromFullPath indicates an expected call of ExtractRepoNameFromFullPath.

func (*MockRepositoryMockRecorder) HandleExistingRemote

func (mr *MockRepositoryMockRecorder) HandleExistingRemote(remoteSource any) *gomock.Call

HandleExistingRemote indicates an expected call of HandleExistingRemote.

func (*MockRepositoryMockRecorder) HandleRemoteManagement

func (mr *MockRepositoryMockRecorder) HandleRemoteManagement(remoteSource any) *gomock.Call

HandleRemoteManagement indicates an expected call of HandleRemoteManagement.

func (*MockRepositoryMockRecorder) HandleRepositoryNotFoundError

func (mr *MockRepositoryMockRecorder) HandleRepositoryNotFoundError(params any) *gomock.Call

HandleRepositoryNotFoundError indicates an expected call of HandleRepositoryNotFoundError.

func (*MockRepositoryMockRecorder) HandleStatusAddError

func (mr *MockRepositoryMockRecorder) HandleStatusAddError(err, params any) *gomock.Call

HandleStatusAddError indicates an expected call of HandleStatusAddError.

func (*MockRepositoryMockRecorder) IsGitRepository

func (mr *MockRepositoryMockRecorder) IsGitRepository() *gomock.Call

IsGitRepository indicates an expected call of IsGitRepository.

func (*MockRepositoryMockRecorder) IsWorkspaceFile

func (mr *MockRepositoryMockRecorder) IsWorkspaceFile() *gomock.Call

IsWorkspaceFile indicates an expected call of IsWorkspaceFile.

func (*MockRepositoryMockRecorder) ListWorktrees

func (mr *MockRepositoryMockRecorder) ListWorktrees() *gomock.Call

ListWorktrees indicates an expected call of ListWorktrees.

func (*MockRepositoryMockRecorder) LoadWorktree

func (mr *MockRepositoryMockRecorder) LoadWorktree(remoteSource, branchName any) *gomock.Call

LoadWorktree indicates an expected call of LoadWorktree.

func (*MockRepositoryMockRecorder) ParseConfirmationInput

func (mr *MockRepositoryMockRecorder) ParseConfirmationInput(input any) *gomock.Call

ParseConfirmationInput indicates an expected call of ParseConfirmationInput.

func (*MockRepositoryMockRecorder) RemoveWorktreeFromStatus

func (mr *MockRepositoryMockRecorder) RemoveWorktreeFromStatus(repoURL, branch any) *gomock.Call

RemoveWorktreeFromStatus indicates an expected call of RemoveWorktreeFromStatus.

func (*MockRepositoryMockRecorder) Validate

func (mr *MockRepositoryMockRecorder) Validate() *gomock.Call

Validate indicates an expected call of Validate.

func (*MockRepositoryMockRecorder) ValidateGitStatus

func (mr *MockRepositoryMockRecorder) ValidateGitStatus() *gomock.Call

ValidateGitStatus indicates an expected call of ValidateGitStatus.

func (*MockRepositoryMockRecorder) ValidateOriginRemote

func (mr *MockRepositoryMockRecorder) ValidateOriginRemote() *gomock.Call

ValidateOriginRemote indicates an expected call of ValidateOriginRemote.

func (*MockRepositoryMockRecorder) ValidateRepository

func (mr *MockRepositoryMockRecorder) ValidateRepository(params any) *gomock.Call

ValidateRepository indicates an expected call of ValidateRepository.

func (*MockRepositoryMockRecorder) ValidateWorktreeExists

func (mr *MockRepositoryMockRecorder) ValidateWorktreeExists(repoURL, branch any) *gomock.Call

ValidateWorktreeExists indicates an expected call of ValidateWorktreeExists.

type NewRepositoryParams

type NewRepositoryParams struct {
	FS            fs.FS
	Git           git.Git
	Config        *config.Config
	StatusManager status.Manager
	Logger        logger.Logger
	Prompt        prompt.Prompt
	Worktree      worktree.Worktree
	Verbose       bool
}

NewRepositoryParams contains parameters for creating a new Repository instance.

type RemoteManagementParams

type RemoteManagementParams struct {
	RemoteSource string
}

RemoteManagementParams contains parameters for remote management operations.

type Repository

type Repository interface {
	// Validate validates that the current directory is a working Git repository.
	Validate() error

	// CreateWorktree creates a worktree for the repository with the specified branch.
	CreateWorktree(branch string, opts ...CreateWorktreeOpts) error

	// ListWorktrees lists all worktrees for the current repository.
	ListWorktrees() ([]status.WorktreeInfo, error)

	// IsGitRepository checks if the current directory is a Git repository (including worktrees).
	IsGitRepository() (bool, error)

	// IsWorkspaceFile checks if the current directory contains workspace files.
	IsWorkspaceFile() (bool, error)

	// DeleteWorktree deletes a worktree for the repository with the specified branch.
	DeleteWorktree(branch string, force bool) error

	// LoadWorktree loads a branch from a remote source and creates a worktree.
	LoadWorktree(remoteSource, branchName string) error

	// ParseConfirmationInput parses confirmation input from user.
	ParseConfirmationInput(input string) (bool, error)

	// Validation methods
	ValidateRepository(params ValidationParams) (*ValidationResult, error)
	ValidateWorktreeExists(repoURL, branch string) error
	ValidateGitStatus() error
	ValidateOriginRemote() error

	// Status management methods
	AddWorktreeToStatus(params StatusParams) error
	HandleStatusAddError(err error, params StatusParams) error
	HandleRepositoryNotFoundError(params StatusParams) error
	AutoAddRepositoryToStatus(repoURL, repoPath string) error
	RemoveWorktreeFromStatus(repoURL, branch string) error
	CleanupWorktreeDirectory(worktreePath string)
	CleanupOnWorktreeCreationFailure(repoURL, branch, worktreePath string)

	// Remote management methods
	HandleRemoteManagement(remoteSource string) error
	HandleExistingRemote(remoteSource string) error
	AddNewRemote(remoteSource string) error
	ConstructRemoteURL(originURL, remoteSource, repoName string) (string, error)
	ExtractHostFromURL(url string) string
	DetermineProtocol(originURL string) string
	ExtractRepoNameFromFullPath(fullPath string) string
}

Repository interface provides Git repository management functionality.

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.

Jump to

Keyboard shortcuts

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