Documentation
¶
Index ¶
- Constants
- Variables
- func Module(scope string) fx.Option
- func NewGroupAlreadyExistsError(name string) error
- func NewGroupIsRepositoryError(name string) error
- func NewGroupNotEmptyError(name string) error
- func NewGroupNotFoundError(name string) error
- func NewNotAGroupError(name string) error
- func NewRepositoryAlreadyExistsError(name string) error
- func NewRepositoryNotFoundError(name string) error
- func NewRepositoryWithNameExistsError(name string) error
- func NewTagNotFoundError(name string) error
- func WrapCommitNotFoundError(err error) error
- func WrapCreateGroupDirError(err error) error
- func WrapCreateParentDirsError(err error) error
- func WrapDeleteGroupDirError(err error) error
- func WrapDeleteRepoDirError(err error) error
- func WrapDeleteTagError(err error) error
- func WrapEncodeTagError(err error) error
- func WrapGetHEADError(err error) error
- func WrapGetRepoConfigError(err error) error
- func WrapGetTagsError(err error) error
- func WrapInitGitRepoError(err error) error
- func WrapIterateTagsError(err error) error
- func WrapOpenRepoError(err error) error
- func WrapReadGroupDirError(err error) error
- func WrapSetTagRefError(err error) error
- func WrapStatGroupError(err error) error
- func WrapStatRepoError(err error) error
- func WrapStoreTagError(err error) error
- func WrapTagNotFoundError(err error) error
- func WrapWalkGroupsDirError(err error) error
- func WrapWalkReposDirError(err error) error
- type AlreadyExistsError
- type ConflictError
- type Group
- type InvalidTypeError
- type NotEmptyError
- type NotFoundError
- type OperationError
- type Params
- type Repository
- type RepositoryManager
- func (m *RepositoryManager) CreateGroup(name, description string) (*Group, error)
- func (m *RepositoryManager) CreateRepository(name, description string) (*Repository, error)
- func (m *RepositoryManager) CreateTag(repoName, tagName, commitHash, message, tagger string) (*Tag, error)
- func (m *RepositoryManager) DeleteGroup(name string) error
- func (m *RepositoryManager) DeleteRepository(name string) error
- func (m *RepositoryManager) DeleteTag(repoName, tagName string) error
- func (m *RepositoryManager) GetGroup(name string) (*Group, error)
- func (m *RepositoryManager) GetReposPath() string
- func (m *RepositoryManager) GetRepository(name string) (*Repository, error)
- func (m *RepositoryManager) GetTag(repoName, tagName string) (*Tag, error)
- func (m *RepositoryManager) IsGroup(name string) bool
- func (m *RepositoryManager) IsRepository(name string) bool
- func (m *RepositoryManager) ListGroups() ([]Group, error)
- func (m *RepositoryManager) ListRepositories() ([]Repository, error)
- func (m *RepositoryManager) ListTags(repoName string) ([]Tag, error)
- type Tag
Constants ¶
const ( ModuleName = "RepositoryManager" DefaultReposPath = "./git/repos" )
Variables ¶
var ( // ErrEmptyName indicates that the name parameter is empty ErrEmptyName = errors.New("name cannot be empty") // ErrInvalidName indicates that the name contains invalid characters ErrInvalidName = errors.New("invalid name: must contain only alphanumeric characters, dashes, underscores, and dots") )
Common errors
var ( // ErrRepositoryNameEmpty indicates repository name is empty ErrRepositoryNameEmpty = errors.New("repository name cannot be empty") // ErrRepositoryInvalidName indicates repository name is invalid ErrRepositoryInvalidName = errors.New("invalid repository name: must contain only alphanumeric characters, dashes, underscores, and dots") )
Repository errors
var ( // ErrGroupInvalidName indicates group name is invalid ErrGroupInvalidName = errors.New("invalid group name: must contain only alphanumeric characters, dashes, underscores, and dots") )
Group errors
var ( // ErrTagNameEmpty indicates tag name is empty ErrTagNameEmpty = errors.New("tag name cannot be empty") )
Tag errors
Functions ¶
func NewGroupAlreadyExistsError ¶
NewGroupAlreadyExistsError creates a group already exists error
func NewGroupIsRepositoryError ¶
NewGroupIsRepositoryError creates an error when a group path is actually a repository
func NewGroupNotEmptyError ¶
NewGroupNotEmptyError creates a group not empty error
func NewGroupNotFoundError ¶
NewGroupNotFoundError creates a group not found error
func NewNotAGroupError ¶
NewNotAGroupError creates a not a group error
func NewRepositoryAlreadyExistsError ¶
NewRepositoryAlreadyExistsError creates a repository already exists error
func NewRepositoryNotFoundError ¶
NewRepositoryNotFoundError creates a repository not found error
func NewRepositoryWithNameExistsError ¶
NewRepositoryWithNameExistsError creates an error when repository conflicts with group name
func NewTagNotFoundError ¶
NewTagNotFoundError creates a tag not found error
func WrapCommitNotFoundError ¶
WrapCommitNotFoundError wraps an error when commit is not found
func WrapCreateGroupDirError ¶
WrapCreateGroupDirError wraps an error when creating group directory
func WrapCreateParentDirsError ¶
WrapCreateParentDirsError wraps an error when creating parent directories
func WrapDeleteGroupDirError ¶
WrapDeleteGroupDirError wraps an error when deleting group directory
func WrapDeleteRepoDirError ¶
WrapDeleteRepoDirError wraps an error when deleting repository directory
func WrapDeleteTagError ¶
WrapDeleteTagError wraps an error when deleting tag
func WrapEncodeTagError ¶
WrapEncodeTagError wraps an error when encoding tag object
func WrapGetHEADError ¶
WrapGetHEADError wraps an error when getting HEAD
func WrapGetRepoConfigError ¶
WrapGetRepoConfigError wraps an error when getting repository config
func WrapGetTagsError ¶
WrapGetTagsError wraps an error when getting tags
func WrapInitGitRepoError ¶
WrapInitGitRepoError wraps an error when initializing git repository
func WrapIterateTagsError ¶
WrapIterateTagsError wraps an error when iterating tags
func WrapOpenRepoError ¶
WrapOpenRepoError wraps an error when opening repository
func WrapReadGroupDirError ¶
WrapReadGroupDirError wraps an error when reading group directory
func WrapSetTagRefError ¶
WrapSetTagRefError wraps an error when setting tag reference
func WrapStatGroupError ¶
WrapStatGroupError wraps an error when stating group
func WrapStatRepoError ¶
WrapStatRepoError wraps an error when stating repository
func WrapStoreTagError ¶
WrapStoreTagError wraps an error when storing tag object
func WrapTagNotFoundError ¶
WrapTagNotFoundError wraps an error when tag is not found
func WrapWalkGroupsDirError ¶
WrapWalkGroupsDirError wraps an error when walking groups directory
func WrapWalkReposDirError ¶
WrapWalkReposDirError wraps an error when walking repositories directory
Types ¶
type AlreadyExistsError ¶
AlreadyExistsError represents a resource that already exists
func (*AlreadyExistsError) Error ¶
func (e *AlreadyExistsError) Error() string
type ConflictError ¶
type ConflictError struct {
Message string
}
ConflictError represents a conflict between resources
func (*ConflictError) Error ¶
func (e *ConflictError) Error() string
type Group ¶
type Group struct {
Name string `json:"name" example:"myorg"`
Description string `json:"description" example:"My Organization"`
Path string `json:"path" example:"/path/to/repos/myorg"`
CreatedAt time.Time `json:"created_at" example:"2025-01-01T00:00:00Z"`
} // @name Group
Group represents a namespace/organization for repositories @Description Group/namespace for organizing repositories
type InvalidTypeError ¶
InvalidTypeError represents a resource that has the wrong type
func (*InvalidTypeError) Error ¶
func (e *InvalidTypeError) Error() string
type NotEmptyError ¶
NotEmptyError represents a resource that is not empty when it should be
func (*NotEmptyError) Error ¶
func (e *NotEmptyError) Error() string
type NotFoundError ¶
NotFoundError represents a resource that was not found
func (*NotFoundError) Error ¶
func (e *NotFoundError) Error() string
type OperationError ¶
type OperationError struct {
Op string // Operation name: "create", "delete", "open", etc.
Err error // Underlying error
}
OperationError represents an error during an operation
func (*OperationError) Error ¶
func (e *OperationError) Error() string
func (*OperationError) Unwrap ¶
func (e *OperationError) Unwrap() error
type Repository ¶
type Repository struct {
Name string `json:"name" example:"myorg/myrepo"`
Description string `json:"description" example:"My awesome repository"`
Path string `json:"path" example:"/path/to/repos/myorg/myrepo.git"`
CreatedAt time.Time `json:"created_at" example:"2025-01-01T00:00:00Z"`
} // @name Repository
Repository represents a Git repository @Description Git repository information
type RepositoryManager ¶
type RepositoryManager struct {
// contains filtered or unexported fields
}
func (*RepositoryManager) CreateGroup ¶
func (m *RepositoryManager) CreateGroup(name, description string) (*Group, error)
CreateGroup creates a new group (namespace/organization)
func (*RepositoryManager) CreateRepository ¶
func (m *RepositoryManager) CreateRepository(name, description string) (*Repository, error)
CreateRepository creates a new Git repository
func (*RepositoryManager) CreateTag ¶
func (m *RepositoryManager) CreateTag(repoName, tagName, commitHash, message, tagger string) (*Tag, error)
CreateTag creates a Git tag
func (*RepositoryManager) DeleteGroup ¶
func (m *RepositoryManager) DeleteGroup(name string) error
DeleteGroup deletes a group
func (*RepositoryManager) DeleteRepository ¶
func (m *RepositoryManager) DeleteRepository(name string) error
DeleteRepository deletes a Git repository
func (*RepositoryManager) DeleteTag ¶
func (m *RepositoryManager) DeleteTag(repoName, tagName string) error
DeleteTag deletes a Git tag
func (*RepositoryManager) GetGroup ¶
func (m *RepositoryManager) GetGroup(name string) (*Group, error)
GetGroup retrieves a group by name
func (*RepositoryManager) GetReposPath ¶
func (m *RepositoryManager) GetReposPath() string
GetReposPath returns the base path where repositories are stored
func (*RepositoryManager) GetRepository ¶
func (m *RepositoryManager) GetRepository(name string) (*Repository, error)
GetRepository retrieves a repository by name
func (*RepositoryManager) GetTag ¶
func (m *RepositoryManager) GetTag(repoName, tagName string) (*Tag, error)
GetTag retrieves a specific tag
func (*RepositoryManager) IsGroup ¶
func (m *RepositoryManager) IsGroup(name string) bool
IsGroup checks if the given name is a group (not a repository)
func (*RepositoryManager) IsRepository ¶
func (m *RepositoryManager) IsRepository(name string) bool
IsRepository checks if the given name is a repository
func (*RepositoryManager) ListGroups ¶
func (m *RepositoryManager) ListGroups() ([]Group, error)
ListGroups returns all groups (directories without .git suffix)
func (*RepositoryManager) ListRepositories ¶
func (m *RepositoryManager) ListRepositories() ([]Repository, error)
ListRepositories returns all repositories Supports multi-level directory structures, recursively scanning for .git repositories
type Tag ¶
type Tag struct {
Name string `json:"name" example:"v1.0.0"`
CommitHash string `json:"commit_hash" example:"abc123def456789"`
Message string `json:"message,omitempty" example:"Release version 1.0.0"`
Tagger string `json:"tagger,omitempty" example:"John Doe"`
TaggerDate time.Time `json:"tagger_date,omitempty" example:"2025-01-01T00:00:00Z"`
Type string `json:"type" example:"annotated" enums:"lightweight,annotated"`
} // @name Tag
Tag represents a Git tag @Description Git tag information (lightweight or annotated)