Skip to main content

Module git

Module git 

Source

Structs§

Commit
GitInfo
SemVer

Functions§

check_git_available
Check whether git is available in PATH.
create_and_push_tag
Create an annotated tag and push it if an origin remote exists.
create_tag_via_github_api
Create a tag via the GitHub API (using the gh CLI).
detect_git_info
Detect git info for a given tag.
detect_github_repo
Get the GitHub owner/name from the origin remote.
detect_owner_repo
Get the owner/repo from the origin remote, regardless of SCM host.
extract_tag_prefix
Extract the prefix portion of a tag template by locating the version placeholder.
find_latest_tag_matching
Find the latest tag matching a template pattern. E.g., tag_template “cfgd-core-v{{ .Version }}” → matches tags like “cfgd-core-v1.2.3”
find_latest_tag_matching_with_prefix
Like find_latest_tag_matching, but with optional monorepo prefix filtering.
find_previous_tag
Find the tag immediately before current_tag in commit history.
find_previous_tag_with_prefix
Like find_previous_tag, but with optional monorepo prefix filtering.
get_all_commits
Get all commits reachable from HEAD, optionally filtered to a path. Used for initial releases where there is no previous tag.
get_all_commits_paths
Get all commits reachable from HEAD, filtered to multiple paths.
get_all_semver_tags
Get all semver tags in the repo, sorted descending by version. Prerelease tags sort after release tags of the same major.minor.patch.
get_branch_semver_tags
Get semver tags reachable from HEAD, sorted descending by version. Prerelease tags sort after release tags of the same major.minor.patch.
get_commit_messages_between
Get commit subjects between two refs.
get_commit_messages_between_path
Get commit subjects between two refs that touched a specific path.
get_commits_between
Get commits between two refs, optionally filtered to a path.
get_commits_between_paths
Get commits between two refs, filtered to multiple paths (git log – path1 path2 …).
get_current_branch
Get the current branch name.
get_first_commit
Return the SHA of the very first commit in the repository.
get_last_commit_messages
Get last N commit subjects.
get_last_commit_messages_path
Get last N commit subjects that touched a specific path.
get_short_commit
Get the short commit hash of HEAD.
gh_api_get
GET a GitHub API endpoint via the gh CLI (single request, no pagination).
gh_api_get_paginated
GET a GitHub API endpoint via the gh CLI, with pagination.
git_status_porcelain
Return the git status --porcelain output showing dirty files.
has_changes_since
Check if there are changes in a path since a given tag.
has_commits_since_tag
Check if there are any commits since a given tag.
has_version_placeholder
Check whether a tag template string contains any recognised version placeholder.
is_git_dirty
Check whether the working tree has uncommitted changes.
is_git_repo
Check whether the current directory is inside a git repository.
is_shallow_clone
Check whether the current repository is a shallow clone.
local_git_user_email
Read git config user.email, or None if unset / git is unavailable.
local_git_user_name
Read git config user.name, or None if unset / git is unavailable.
parse_github_remote
Parse owner and repo name from a GitHub remote URL. Supports HTTPS (https://github.com/owner/repo.git) and SSH (git@github.com:owner/repo.git).
parse_remote_owner_repo
Parse owner and repo from any git remote URL, regardless of host.
parse_semver
Parse a strict semver version from a string like “v1.2.3”, “1.2.3”, “v1.0.0-rc.1”, “v1.0.0+build.42”, or “v1.0.0-rc.1+build.42”.
parse_semver_tag
Parse a semver version from a prefixed tag string.
render_ignore_patterns
Render ignore patterns (both ignore_tags and ignore_tag_prefixes) through the template engine when template_vars is provided.
stage_and_commit
Stage specific files and create a commit.
strip_monorepo_prefix
Strip a monorepo tag prefix from a tag string.
tag_points_at_head
Check whether tag points at the current HEAD commit.