Repository
Repository ManagerLink
sierra.package_manager.repository
Link
Repository management for Sierra Package Manager.
Handles adding, removing, and updating GitHub repository sources.
ClassesLink
RepositorySource
dataclass
Link
RepositorySource(name: str, url: str, branch: str = 'main', enabled: bool = True, priority: int = 10)
RepositoryManager
Link
RepositoryManager(config_dir: Path, logger: UniversalLogger | None = None)
Manages GitHub repository sources for package discovery.
Handles: - Adding/removing repository sources - Updating package registries - Caching registry data - Validating repository structure
Initialize repository manager.
| PARAMETER | DESCRIPTION |
|---|---|
config_dir
|
Directory for storing configuration and cache
TYPE:
|
logger
|
Logger instance for tracking operations
TYPE:
|
AttributesLink
FunctionsLink
add_source
Linkadd_source(url: str, name: str | None = None, branch: str = 'main', priority: int = 10) -> RepositorySource
Add a new repository source.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
GitHub repository URL
TYPE:
|
name
|
Custom name for the source
TYPE:
|
branch
|
Git branch to use
TYPE:
|
priority
|
Priority for package resolution (lower = higher priority)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
RepositorySource
|
The created source |
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
If source already exists or URL is invalid |
remove_source
Link list_sources
Linklist_sources() -> list[RepositorySource]
Get all configured sources.
| RETURNS | DESCRIPTION |
|---|---|
list[RepositorySource]
|
List of repository sources sorted by priority |
get_source
Linkget_source(name: str) -> RepositorySource | None
Get a specific source by name.
| PARAMETER | DESCRIPTION |
|---|---|
name
|
Source name
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
RepositorySource | None
|
The source if found, None otherwise |
update_registry
Link