Skip to main contentModule git
Source - Commit
- GitInfo
- SemVer
- 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.