3652c52478
issue: #7
6.7 KiB
6.7 KiB
sv4git
Semantic version for git
Getting Started
Installing
download the latest release and add the binary on your path
Config
you can config using the environment variables
Variable | description | default |
---|---|---|
SV4GIT_MAJOR_VERSION_TYPES | types used to bump major version | |
SV4GIT_MINOR_VERSION_TYPES | types used to bump minor version | feat |
SV4GIT_PATCH_VERSION_TYPES | types used to bump patch version | build,ci,chore,docs,fix,perf,refactor,style,test |
SV4GIT_INCLUDE_UNKNOWN_TYPE_AS_PATCH | force patch bump on unknown type | true |
SV4GIT_BRAKING_CHANGE_PREFIXES | list of prefixes that will be used to identify a breaking change | BREAKING CHANGE:,BREAKING CHANGES: |
SV4GIT_ISSUEID_PREFIXES | list of prefixes that will be used to identify an issue id | jira:,JIRA:,Jira: |
SV4GIT_TAG_PATTERN | tag version pattern | %d.%d.%d |
SV4GIT_RELEASE_NOTES_TAGS | release notes headers for each visible type | fix:Bug Fixes,feat:Features |
SV4GIT_VALIDATE_MESSAGE_SKIP_BRANCHES | ignore branches from this list on validate commit message | master,develop |
SV4GIT_COMMIT_MESSAGE_TYPES | list of valid commit types for commit message | build,ci,chore,docs,feat,fix,perf,refactor,revert,style,test |
SV4GIT_ISSUE_KEY_NAME | metadata key name used on validate commit message hook to enhance footer, if blank footer will not be added | jira |
SV4GIT_ISSUE_REGEX | issue id regex, if blank footer will not be added | [A-Z]+-[0-9]+ |
SV4GIT_BRANCH_ISSUE_REGEX | regex to extract issue id from branch name, must have 3 groups (prefix, id, posfix), if blank footer will not be added | ^([a-z]+\/)?([A-Z]+-[0-9]+)(-.*)? |
Running
run git-sv
to get the list of available parameters
git-sv
Run as git command
if git-sv
is configured on your path, you can use it like a git command
git sv
git sv current-version
git sv next-version
Usage
use --help
or -h
to get usage information, dont forget that some commands have unique options too
# sv help
git-sv -h
# sv release-notes command help
git-sv rn -h
Available commands
Variable | description | has options |
---|---|---|
current-version, cv | get last released version from git | ❌ |
next-version, nv | generate the next version based on git commit messages | ❌ |
commit-log, cl | list all commit logs according to range as jsons | ✔️ |
commit-notes, cn | generate a commit notes according to range | ✔️ |
release-notes, rn | generate release notes | ✔️ |
changelog, cgl | generate changelog | ✔️ |
tag, tg | generate tag with version based on git commit messages | ❌ |
commit, cmt | execute git commit with convetional commit message helper | ❌ |
validate-commit-message, vcm | use as prepare-commit-message hook to validate commit message | ✔️ |
help, h | shows a list of commands or help for one command | ❌ |
Use validate-commit-message as prepare-commit-msg hook
Configure your .git/hooks/prepare-commit-msg
#!/bin/sh
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
git sv vcm --path "$(pwd)" --file $COMMIT_MSG_FILE --source $COMMIT_SOURCE
tip: you can configure a directory as your global git templates using the command below, check git config docs for more information!
git config --global init.templatedir '<YOUR TEMPLATE DIR>'
Development
Makefile
run make
to get the list of available actions
make
Make configs
Variable | description |
---|---|
BUILDOS | build OS |
BUILDARCH | build arch |
ECHOFLAGS | flags used on echo |
BUILDENVS | var envs used on build |
BUILDFLAGS | flags used on build |
Parameters | description |
---|---|
args | parameters that will be used on run |
#variables
BUILDOS="linux" BUILDARCH="amd64" make build
#parameters
make run args="-h"
Build
make build
the binary will be created on bin/$BUILDOS_$BUILDARCH/git-sv
Tests
make test
Run
#without args
make run
#with args
make run args="-h"