1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-07 21:37:04 +09:00

GO-5600 fix hook

This commit is contained in:
Roman Khafizianov 2025-05-09 14:20:32 +02:00
parent 6af6efb3bb
commit c06310ecf5
No known key found for this signature in database
GPG key ID: F07A7D55A2684852

View file

@ -1,27 +1,28 @@
#!/usr/bin/env bash
# The script below adds the branch name automatically to
# every one of your commit messages. The regular expression
# below searches for linear issue key's. The issue key will
# be extracted out of your branch name
#
# Extract ISSUE_ID from branch (e.g. JS-1234, GO-4222, FOO-99999) and
# prepend it to your commit message if not already present.
REGEX_ISSUE_ID="[a-zA-Z0-9]+-[0-9]+"
# Find current branch name
REGEX_ISSUE_ID='[A-Za-z]+-[0-9]+' # letters-dash-numbers
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
COMMIT_MSG_FILE=$1
COMMIT_TEXT=$(cat "$COMMIT_MSG_FILE")
COMMIT_TEXT=$(< "$COMMIT_MSG_FILE")
if [[ -z "$BRANCH_NAME" ]]; then
echo "Commit message validation failed: no branch name!"; exit 1
# Find and uppercase the first matching issue key
ISSUE_ID=$(echo "$BRANCH_NAME" \
| grep -oE "$REGEX_ISSUE_ID" \
| head -1 \
| tr '[:lower:]' '[:upper:]')
# If no issue key, reject the commit
if [[ -z "$ISSUE_ID" ]]; then
echo "ERROR: Branch name must contain an issue key (e.g. GO-1234)." >&2
exit 1
fi
# Extract issue id from branch name
ISSUE_ID=$(echo "$BRANCH_NAME" | grep -o -E "$REGEX_ISSUE_ID" | head -1 | awk '{print toupper($0)}')
if [[ "$ISSUE_ID" != "GO-"* ]]; then
echo "Commit message validation failed: branch name should contain issue name!"; exit 1
# If the commit message doesnt already start with ISSUE_ID, prepend it
if [[ ! "$COMMIT_TEXT" =~ ^$ISSUE_ID ]]; then
printf "%s %s\n" "$ISSUE_ID" "$COMMIT_TEXT" > "$COMMIT_MSG_FILE"
fi
if [[ "$COMMIT_TEXT" != "GO-"* ]]; then
echo "$ISSUE_ID" "$COMMIT_TEXT" > "$COMMIT_MSG_FILE"
fi
exit 0