Skip to content

Instantly share code, notes, and snippets.

@berttejeda
Created June 3, 2020 20:05
Show Gist options
  • Save berttejeda/cf7523f822bfc3ce651094e5354fb02b to your computer and use it in GitHub Desktop.
Save berttejeda/cf7523f822bfc3ce651094e5354fb02b to your computer and use it in GitHub Desktop.
Generate release notes for your local git project
#!/bin/env bash
usage="""Echo release notes for your git repo
Usage:
${0##*/} --release-name|-R <release_name> --remote-name|-r <Name Of Your Remote Git Repo> --start-tag-or-commit|-s <Tag Name to Start From> --end-tag-or-commit|-e <Tag Name to End At>
Example:
${0##*/} --release-name 'Release 2020-06-03 v1.0.0' --remote-name origin --start-tag-or-commit 74d731e --end-tag-or-commit 86f126d
${0##*/} -R 'Release 2020-06-03 v1.0.0' -r origin -s 74d731e --e 86f126d
"""
if [[ ($# -lt 1) || ("$*" =~ .*--help.*) ]];then
echo -e "${usage}"
exit 0
fi
while (( "$#" )); do
if [[ "$1" =~ --release-name|-R$ ]]; then release_name=$2;fi
if [[ "$1" =~ --remote-name|-r$ ]]; then remote_name=$2;fi
if [[ "$1" =~ --start-tag-or-commit|-s$ ]]; then start_tag_or_commit=$2;fi
if [[ "$1" =~ --end-tag-or-commit|-e$ ]]; then end_tag_or_commit=$2;fi
shift
done
git_branch=$(git rev-parse --abbrev-ref HEAD);
repo_url=$(git config --get remote.${remote_name}.url | sed 's/\.git//' | sed 's/:\/\/.*@/:\/\//');
echo "## ${release_name}"
echo
for commit in "$(git log --no-merges ${start_tag_or_commit}..${end_tag_or_commit} --format="* %s [%h]($repo_url/commit/%H)" | sed 's/ / /')"
do
echo "${commit}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment