Last active
January 17, 2023 19:22
-
-
Save GuyPaddock/d242f2592cd844a7d95d614489440644 to your computer and use it in GitHub Desktop.
Extract Issue Tags from Commit History in a Branch Based Off develop
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
## | |
# @file | |
# Extracts all of the issue tags in commit messages of a branch_ref and lists them. | |
# | |
# Usage: | |
# list-issues.sh [branch_ref ref] [base branch_ref ref] | |
# | |
# - If [branch_ref ref] is not specified, it defaults to "HEAD" (whatever is | |
# currently checked out. | |
# - If [base branch_ref ref] is not specified, it defaults to "main" | |
# (the develop branch_ref). | |
# | |
# If the Git history looked like this: | |
# [ABC-123] Some change | |
# [ABC-456] Another change | |
# [ABC-123] [ABC-786] Still other changes | |
# | |
# Then the output would be a sorted list of tickets, like this: | |
# ABC-123 | |
# ABC-456 | |
# ABC-786 | |
# | |
set -eu | |
################################################################################ | |
# Constants | |
################################################################################ | |
project="ABC" | |
default_branch_ref="HEAD" | |
default_base_branch_ref="main" | |
################################################################################ | |
# Command-line Arguments with Defaults | |
################################################################################ | |
branch_ref="${1:-${default_branch_ref}}" | |
base_branch_ref="${2:-${default_base_branch_ref}}" | |
################################################################################ | |
# Main Script | |
################################################################################ | |
git log --format=oneline "${base_branch_ref}...${branch_ref}" | \ | |
sed -E 's/\[|\]/\n/g' | grep -E "^${project}-" | sort --numeric-sort | uniq |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment