base
appimage_updater.repositories.base
¶
Base repository interface for AppImage Updater.
This module defines the abstract base class that all repository implementations must inherit from, providing a consistent interface for fetching release information.
RepositoryClient(timeout=30, user_agent=None, **kwargs)
¶
Abstract base class for repository clients.
All repository implementations (GitHub, GitLab, etc.) must inherit from this class and implement the required methods.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timeout
|
int
|
Request timeout in seconds |
30
|
user_agent
|
str | None
|
Custom user agent string |
None
|
**kwargs
|
Any
|
Repository-specific configuration options |
{}
|
Source code in src/appimage_updater/repositories/base.py
repository_type
abstractmethod
property
¶
Get the repository type identifier (e.g., 'github', 'gitlab').
timeout = timeout
instance-attribute
¶
user_agent = user_agent or self._get_default_user_agent()
instance-attribute
¶
detect_repository_type(url)
abstractmethod
¶
Check if this client can handle the given repository URL.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
bool
|
True if this client can handle the URL, False otherwise |
Source code in src/appimage_updater/repositories/base.py
generate_pattern_from_releases(url)
abstractmethod
async
¶
Generate file pattern from actual releases.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
str | None
|
Regex pattern string or None if generation fails |
Source code in src/appimage_updater/repositories/base.py
get_latest_release(repo_url)
abstractmethod
async
¶
Get the latest stable release for a repository.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
repo_url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
Release
|
Release object with release information |
Raises:
Type | Description |
---|---|
RepositoryError
|
If the operation fails |
Source code in src/appimage_updater/repositories/base.py
get_latest_release_including_prerelease(repo_url)
abstractmethod
async
¶
Get the latest release including prereleases.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
repo_url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
Release
|
Release object with release information |
Raises:
Type | Description |
---|---|
RepositoryError
|
If the operation fails |
Source code in src/appimage_updater/repositories/base.py
get_releases(repo_url, limit=10)
abstractmethod
async
¶
Get recent releases for a repository.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
repo_url
|
str
|
Repository URL |
required |
limit
|
int
|
Maximum number of releases to fetch |
10
|
Returns:
Type | Description |
---|---|
list[Release]
|
List of Release objects |
Raises:
Type | Description |
---|---|
RepositoryError
|
If the operation fails |
Source code in src/appimage_updater/repositories/base.py
normalize_repo_url(url)
abstractmethod
¶
Normalize repository URL and detect if it was corrected.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
tuple[str, bool]
|
Tuple of (normalized_url, was_corrected) |
Source code in src/appimage_updater/repositories/base.py
parse_repo_url(url)
abstractmethod
¶
Parse repository URL to extract owner and repo name.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
tuple[str, str]
|
Tuple of (owner, repo_name) |
Raises:
Type | Description |
---|---|
RepositoryError
|
If URL format is invalid |
Source code in src/appimage_updater/repositories/base.py
should_enable_prerelease(url)
abstractmethod
async
¶
Check if prerelease should be automatically enabled for a repository.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
Type | Description |
---|---|
bool
|
True if only prereleases are found, False if stable releases exist |
Source code in src/appimage_updater/repositories/base.py
RepositoryError
¶
Base exception for repository operations.