repository
appimage_updater.repositories.gitlab.repository
¶
GitLab repository implementation for AppImage Updater.
This module provides the GitLab-specific implementation of the repository interface, supporting both gitlab.com and self-hosted GitLab instances.
GitLabRepository(timeout=30, user_agent=None, auth=None, token=None, **kwargs)
¶
GitLab repository implementation following the abstract base interface.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timeout
|
int
|
Request timeout in seconds |
30
|
user_agent
|
str | None
|
Custom user agent string |
None
|
auth
|
GitLabAuth | None
|
GitLabAuth instance for authentication |
None
|
token
|
str | None
|
Explicit GitLab token (creates auth if provided) |
None
|
**kwargs
|
Any
|
Additional configuration options |
{}
|
Source code in src/appimage_updater/repositories/gitlab/repository.py
detect_repository_type(url)
¶
Check if this client can handle the given repository URL.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL to check |
required |
Returns:
Type | Description |
---|---|
bool
|
True if this is a GitLab URL, False otherwise |
Source code in src/appimage_updater/repositories/gitlab/repository.py
generate_pattern_from_releases(url)
async
¶
Generate file pattern from actual releases.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL to analyze for release patterns |
required |
Returns:
Type | Description |
---|---|
str | None
|
str | None: Regex pattern string if successful, None otherwise |
Source code in src/appimage_updater/repositories/gitlab/repository.py
get_latest_release(repo_url)
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/gitlab/repository.py
get_latest_release_including_prerelease(repo_url)
async
¶
Get the latest release including prereleases.
For GitLab, we'll get all recent releases and find the most recent one (which may be a prerelease).
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/gitlab/repository.py
get_releases(repo_url, limit=10)
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/gitlab/repository.py
normalize_repo_url(url)
¶
Normalize repository URL and detect if it was corrected.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL to normalize |
required |
Returns:
Type | Description |
---|---|
tuple[str, bool]
|
Tuple of (normalized_url, was_corrected) |
Source code in src/appimage_updater/repositories/gitlab/repository.py
parse_repo_url(url)
¶
Parse repository URL to extract owner and repo name.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
Repository URL to parse |
required |
Returns:
Type | Description |
---|---|
tuple[str, str]
|
Tuple of (owner, repo_name) where owner may contain slashes for nested groups |
Raises:
Type | Description |
---|---|
RepositoryError
|
If URL format is invalid or parsing fails |
ValueError
|
If URL is empty or whitespace only |
Source code in src/appimage_updater/repositories/gitlab/repository.py
should_enable_prerelease(url)
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 |