Releases¶
list_releases (GitHub)¶
Also reachable as github.list_releases.
ocx_mirror_sdk.github._router.list_releases
¶
list_releases(path: str, *, backend: Backend | str = Backend.REST, include_prereleases: bool = True, include_drafts: bool = True, cache: FileCache | None = None, client: Client | None = None) -> list[Release]
Return releases for a GitHub repository as :class:Release objects.
| PARAMETER | DESCRIPTION |
|---|---|
path
|
Repository path
TYPE:
|
backend
|
:class:
TYPE:
|
include_prereleases
|
If
TYPE:
|
include_drafts
|
If
TYPE:
|
cache
|
Optional :class:
TYPE:
|
client
|
Optional injected
TYPE:
|
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
|
ConfigurationError
|
|
TransportError
|
HTTP failure. |
ApiResponseError
|
Server returned an unusable payload. |
Example
from ocx_mirror_sdk import github releases = github.list_releases("shellcheck/shellcheck", backend=github.Backend.REST) sorted({r.tag_name for r in releases}) # doctest: +SKIP ['v0.10.0', 'v0.9.0', ...]
Source code in src/ocx_mirror_sdk/github/_router.py
Backend¶
ocx_mirror_sdk.github._router.Backend
¶
Bases: StrEnum
GitHub release-fetch backend selection.
Values
REST: httpx-backed REST API. Default. Cheap on rate budget
(request-count limited, asset lists inline) and pages adaptively,
so it handles asset-heavy repos too.
GRAPHQL: httpx-backed GraphQL API. Points-budget limited; prefer
REST unless a specific repo needs it.
gitlab.list_releases¶
ocx_mirror_sdk.gitlab._rest.list_releases
¶
list_releases(path: str, *, host: str = DEFAULT_HOST, include_prereleases: bool = True, cache: FileCache | None = None, client: Client | None = None) -> list[Release]
Return releases for a GitLab project as :class:Release objects.
| PARAMETER | DESCRIPTION |
|---|---|
path
|
Project path
TYPE:
|
host
|
GitLab instance base URL. Default:
TYPE:
|
include_prereleases
|
If
TYPE:
|
cache
|
Optional :class:
TYPE:
|
client
|
Optional injected
TYPE:
|
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
|
TransportError
|
HTTP failure (e.g. |
ApiResponseError
|
Server returned an unusable payload. |
Example
from ocx_mirror_sdk import gitlab releases = gitlab.list_releases("gitlab-org/gitlab-runner") # doctest: +SKIP sorted({r.tag_name for r in releases}) # doctest: +SKIP ['v16.0.0', 'v16.1.0', ...]
Source code in src/ocx_mirror_sdk/gitlab/_rest.py
Asset¶
ocx_mirror_sdk.releases.Asset
dataclass
¶
A downloadable file attached to a release.
| ATTRIBUTE | DESCRIPTION |
|---|---|
name |
Filename of the asset (e.g.
TYPE:
|
browser_download_url |
Stable HTTPS URL the asset can be downloaded from.
TYPE:
|
Release¶
ocx_mirror_sdk.releases.Release
dataclass
¶
A release with its metadata and assets.
| ATTRIBUTE | DESCRIPTION |
|---|---|
tag_name |
The release tag (e.g.
TYPE:
|
body |
Release-notes body (may be empty).
TYPE:
|
prerelease |
Whether the release is flagged as pre-release upstream.
TYPE:
|
draft |
Whether the release is a draft.
TYPE:
|
assets |
List of downloadable :class:
TYPE:
|
to_dict
¶
Return a JSON-serializable dict representation.
Source code in src/ocx_mirror_sdk/releases.py
from_dict
classmethod
¶
Construct a :class:Release from a JSON-decoded dict.
| RAISES | DESCRIPTION |
|---|---|
SchemaError
|
A required field is missing or wrongly typed. |