Build a semver compliant version string for a git repository.
Using tree hashes it returns the latest matching semver tag. If no tree hash match exactly, it falls back to the latest semver tag reachable from the current HEAD.
If the match is not exact or the current branch is not the default branch
or a protected branch, it creates a work-in-progress semver string like v0.1.2-myfeature.123.
Supports raw git repositories as well as GitLab and GitHub builders.
$ go install github.com/linkdata/gitsemver@latest
$ gitsemver $HOME/myreleasedpackage
v1.2.3//go:generate go run github.com/linkdata/gitsemver@latest -gopackage -out version.gen.goGenerates a file called version.gen.go with contents like
// Code generated by gitsemver at 2025-02-10 07:47:15 UTC DO NOT EDIT.
// branch "mybranch", build 456
package mypackage
const PkgName = "mypackage"
const PkgVersion = "v1.2.3-mybranch.456"