semantic_release.hvcs.gitlab module¶
Helper code for interacting with a Gitlab remote VCS
- class semantic_release.hvcs.gitlab.Gitlab(remote_url: str, *, hvcs_domain: str | None = None, token: str | None = None, allow_insecure: bool = False, **_kwargs: Any)[source]¶
Bases:
RemoteHvcsBase
Gitlab HVCS interface for interacting with Gitlab repositories
- DEFAULT_DOMAIN = 'gitlab.com'¶
- DEFAULT_ENV_TOKEN_NAME = 'GITLAB_TOKEN'¶
- create_or_update_release(tag: str, release_notes: str, prerelease: bool = False) str [source]¶
Create or update a release for the given tag in a remote VCS.
- Parameters:
tag – The tag to create or update the release for
release_notes – The changelog description for this version only
prerelease – This parameter has no effect in GitLab
- Returns:
The release id
- Raises:
ValueError – If the release could not be created or updated
gitlab.exceptions.GitlabAuthenticationError – If the user is not authenticated
GitlabUpdateError – If the server cannot perform the request
- create_release(tag: str, release_notes: str, prerelease: bool = False, assets: list[str] | None = None, noop: bool = False) str [source]¶
Create a release in a remote VCS, adding any release notes and assets to it
- Parameters:
tag – The tag to create the release for
release_notes – The changelog description for this version only
prerelease – This parameter has no effect in GitLab
assets – A list of paths to files to upload as assets (TODO: not implemented)
noop – If True, do not perform any actions, only log intents
- Returns:
The tag of the release
- Raises:
GitlabAuthenticationError: If authentication is not correct
- Raises:
GitlabCreateError: If the server cannot perform the request
- edit_release_notes(release: ProjectRelease, release_notes: str) str [source]¶
Update the release notes for a given release.
- Parameters:
release – The release object to update
release_notes – The new release notes
- Returns:
The release id
- Raises:
GitlabAuthenticationError: If authentication is not correct
- Raises:
GitlabUpdateError: If the server cannot perform the request
- get_changelog_context_filters() tuple[Callable[..., Any], ...] [source]¶
Return a list of functions that can be used as filters in a Jinja2 template
ex. filters to convert text to URLs for issues and commits
- get_release_by_tag(tag: str) ProjectRelease | None [source]¶
Get a release by its tag name.
- Parameters:
tag – The tag name to get the release for
- Returns:
gitlab.v4.objects.ProjectRelease or None if not found
- Raises:
gitlab.exceptions.GitlabAuthenticationError: If the user is not authenticated
- property project: GitLabProject¶