semantic_release.hvcs.remote_hvcs_base module

Common functionality and interface for interacting with Git remote VCS

class semantic_release.hvcs.remote_hvcs_base.RemoteHvcsBase(remote_url: str, *args: Any, **kwargs: Any)[source]

Bases: HvcsBase

Interface for subclasses interacting with a remote VCS

This abstract class is defined to provide common helper functions and a set of basic methods that all remote VCS environments usually support.

If the remote vcs implementation (via subclass) does not support a functionality then it can just call super()’s method which defaults as a non-supported log message and empty results. This is more straightforward than checking for NotImplemented around every function call in the core library code.

DEFAULT_ENV_TOKEN_NAME = 'HVCS_TOKEN'
property api_url: Url
create_api_url(endpoint: str, auth: str | None = None, query: str | None = None, fragment: str | None = None) str[source]
abstract create_or_update_release(tag: str, release_notes: str, prerelease: bool = False) int | str[source]

Create or update a release for the given tag in a remote VCS, attaching the given changelog, if supported

abstract create_release(tag: str, release_notes: str, prerelease: bool = False, assets: list[str] | None = None) int | str[source]

Create a release in a remote VCS, if supported

Which includes uploading any assets as part of the release

create_repo_url(repo_path: str, query: str | None = None, fragment: str | None = None) str[source]
create_server_url(path: str, auth: str | None = None, query: str | None = None, fragment: str | None = None) str[source]
property hvcs_domain: Url
abstract upload_dists(tag: str, dist_glob: str) int[source]

Upload built distributions to a release on a remote VCS that supports such uploads