On this page
Pinned GitHub Actions version loader: single source of truth read from action_versions.toml so workflow upgrades happen in one place.
#rlsbl.action_versions
#rlsbl.action_versions
Centralized loader for pinned GitHub Actions versions, providing a single source of truth that every rlsbl-scaffolded workflow consumes so action upgrades happen in one place.
Reads the version table from rlsbl/data/action_versions.toml and exposes helpers for resolving an action to its pinned name@version string. The table is the single source of truth for every workflow rlsbl scaffolds or generates programmatically; bumping a version means editing the TOML and re-running scaffold.
No implicit defaults: requesting an action that is not in the table raises :class:UnknownActionError so missing entries fail loudly.
#UnknownActionError
Raised when an action is requested that is not in the version table.
Subclasses :class:KeyError so existing try/except KeyError blocks keep working while still allowing more specific handling.
#_load_table
def _load_table() -> dict[str, str]Load and cache the TOML version table.
Cached for the lifetime of the process; the file is read at most once.
#get_action_version
def get_action_version(action_name: str) -> strReturn the pinned version string for action_name.
Example: get_action_version("actions/checkout") -> "v6".
Raises :class:UnknownActionError if the action is not in the table.
#format_action
def format_action(action_name: str) -> strReturn the full name@version reference for action_name.
Example: format_action("actions/checkout") -> "actions/checkout@v6".
Raises :class:UnknownActionError if the action is not in the table.
#get_all_versions
def get_all_versions() -> dict[str, str]Return a copy of the full action-name -> version mapping.
Useful for template substitution passes and consistency checks. The returned dict is a shallow copy so callers can mutate it freely.