GH-704 - Add script to back-port commits.

The script creates tickets for the back-ports, cherry-picks the latest commit of the current branch and adapts the commit messages of them to the ticket ids of the newly created tickets.
This commit is contained in:
Oliver Drotbohm
2024-07-05 23:15:41 +02:00
parent e7515cc1dc
commit 5dbf329cd9

40
etc/create-backport-tickets.sh Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
# Format $ticketNumer $targetVersion[]
sourceGh="GH-$1"
branch=$(git branch --show-current)
json=$(gh issue view $1 --json=title,labels)
title=$(echo $json | jq -r '.title')
labels=$(echo $json | jq -r '.labels[].name' | paste -sd ',' -)
number=$1
# For each of the target versions
for version in ${@:2}
do
number=$(gh issue create --title "$title" --body "Back-port of $sourceGh." --label "$labels" --assignee "@me" --milestone "$version" | awk -F '/' '{print $NF}')
# Turn 1.5.6 into 1.5.x
targetBranch="$(echo "$version" | grep -oE '^[0-9]+\.[0-9]+').x"
# Checkout target branch and cherry-pick commit
echo "Checking out branch $targetBranch"
git checkout $targetBranch
echo "Cherry-pick commit from $branch"
git cherry-pick $branch
# Replace ticket reference with new one
targetGh="GH-$number"
expression="s/$sourceGh/$targetGh/g"
message=$(git log -1 --pretty=format:"%s" | sed $expression)
# Update commit message to refer to new ticket
echo "Adapt commit message from $sourceGh to $targetGh"
git commit --amend -m "$message"
done
# Return to original branch
git checkout $branch