feat: auto cherry pick support multiple versions (#6894)

diff --git a/.github/actions/auto-cherry-pick/action.yml b/.github/actions/auto-cherry-pick/action.yml
index c5549bc..94eafe3 100644
--- a/.github/actions/auto-cherry-pick/action.yml
+++ b/.github/actions/auto-cherry-pick/action.yml
@@ -18,6 +18,10 @@
 name: "Auto Cherry Pick"
 description: "cherry pick commits from Pull Requests into Release branch"
 inputs:
+  trigger_label_prefix:
+    description: "The trigger label prefic"
+    default: "needs-cherrypick-"
+    required: false
   author_email:
     description: "The author email address"
     default: ${{ github.actor }}@users.noreply.github.com
@@ -41,7 +45,8 @@
         GH_TOKEN: ${{ github.token }}
         ORIGIN_PR_NUMBER: ${{ github.event.pull_request.number }}
         ORIGIN_PR_TITLE: ${{ github.event.pull_request.title }}
-        ORIGIN_PR_LABELS_JSON:  ${{ toJson(github.event.pull_request.labels.*.name) }}
+        ORIGIN_PR_LABELS_JSON: ${{ toJson(github.event.pull_request.labels.*.name) }}
+        TRIGER_LABEL_PREFIX: ${{ inputs.trigger_label_prefix }}
         AUTHOR_EMAIL: ${{ inputs.author_email }}
         AUTHOR_NAME: ${{ inputs.author_name }}
         ASSIGNEES: ${{ inputs.assignees }}
diff --git a/.github/actions/auto-cherry-pick/cherry-pick.sh b/.github/actions/auto-cherry-pick/cherry-pick.sh
index 767965b..5931a98 100644
--- a/.github/actions/auto-cherry-pick/cherry-pick.sh
+++ b/.github/actions/auto-cherry-pick/cherry-pick.sh
@@ -19,81 +19,70 @@
 
 set -e
 
-ORIGIN_PR_LABELS=($(echo "$ORIGIN_PR_LABELS_JSON" | jq -r '.[]'))
+ORIGIN_PR_LABELS=$(echo "$ORIGIN_PR_LABELS_JSON" | jq -r '.[]')
 
 echo "::group::Origin Info"
 echo "Origin PR Number: $ORIGIN_PR_NUMBER"
 echo "Origin PR Title: $ORIGIN_PR_TITLE"
 echo "Origin PR Labels: $ORIGIN_PR_LABELS"
 echo "GitHub SHA: $GITHUB_SHA"
+echo "Trigger Label Prefix: $TRIGER_LABEL_PREFIX"
 echo "Author Email: $AUTHOR_EMAIL"
 echo "Author Name: $AUTHOR_NAME"
 echo "Assignees: $ASSIGNEES"
 echo "::endgroup::"
 
-TARGET_LABEL_PREFIX="needs-cherrypick-"
-TARGET_LABEL=""
-
-for label in "${ORIGIN_PR_LABELS[@]}"; do
-	if [[ "$label" == "$TARGET_LABEL_PREFIX"* ]]; then
-		TARGET_LABEL="$label"
-		break
-	fi
-done
-
-if [ -z "$TARGET_LABEL" ]; then
-	echo "No need cherry-pick."
-	exit 0
-fi
-
-TARGET_BRANCH="release-${TARGET_LABEL##*-}"
-AUTO_CREATE_PR_BRANCH="$TARGET_BRANCH-auto-cherry-pick-$ORIGIN_PR_NUMBER"
 AUTO_CHERRY_PICK_LABEL="bot/auto-cherry-pick"
-AUTO_CHERRY_PICK_VERSION_LABEL="bot/auto-cherry-pick-for-$TARGET_BRANCH"
 AUTO_CHERRY_PICK_FAILED_LABEL="bot/auto-cherry-pick-failed"
 AUTO_CHERRY_PICK_COMPLETED_LABEL="bot/auto-cherry-pick-completed"
 
-echo "::group::Generate Info"
-echo "Target Branch: $TARGET_BRANCH"
-echo "Auto Create PR Branch: $AUTO_CREATE_PR_BRANCH"
-echo "Auto Cherry Pick Label: $AUTO_CHERRY_PICK_LABEL"
-echo "Auto Cherry Pick Version Label: $AUTO_CHERRY_PICK_VERSION_LABEL"
-echo "Auto Cherry Pick Failed Label: $AUTO_CHERRY_PICK_FAILED_LABEL"
-echo "Auto Cherry Pick Completed Label: $AUTO_CHERRY_PICK_COMPLETED_LABEL"
-echo "::endgroup::"
+for label in ${ORIGIN_PR_LABELS[@]}; do
+	if [[ "$label" == "$TRIGER_LABEL_PREFIX"* ]]; then
+		TARGET_BRANCH="release-${label##*-}"
+		AUTO_CREATE_PR_BRANCH="$TARGET_BRANCH-auto-cherry-pick-$ORIGIN_PR_NUMBER"
+		AUTO_CHERRY_PICK_VERSION_LABEL="bot/auto-cherry-pick-for-$TARGET_BRANCH"
 
-echo "::group::Git Cherry Pick"
-git config --global user.email "$AUTHOR_EMAIL"
-git config --global user.name "$AUTHOR_NAME"
+		echo "::group::Generate Info"
+		echo "Target Branch: $TARGET_BRANCH"
+		echo "Auto Create PR Branch: $AUTO_CREATE_PR_BRANCH"
+		echo "Auto Cherry Pick Version Label: $AUTO_CHERRY_PICK_VERSION_LABEL"
+		echo "::endgroup::"
 
-git remote update
-git fetch --all
-git checkout -b $AUTO_CREATE_PR_BRANCH origin/$TARGET_BRANCH
-git cherry-pick -m 1 $GITHUB_SHA || (
-	gh pr comment $ORIGIN_PR_NUMBER --body "🤖 The current file has a conflict, and the pr cannot be automatically created."
-	gh pr edit $ORIGIN_PR_NUMBER --add-label $AUTO_CHERRY_PICK_FAILED_LABEL
-	exit 1
-)
-git push origin $AUTO_CREATE_PR_BRANCH
-echo "::endgroup::"
+		echo "::group::Git Cherry Pick"
+		git config --global user.email "$AUTHOR_EMAIL"
+		git config --global user.name "$AUTHOR_NAME"
 
-echo "::group::GitHub Auto Create PR"
-AUTO_CREATED_PR_LINK=$(gh pr create \
-	-B $TARGET_BRANCH \
-	-H $AUTO_CREATE_PR_BRANCH \
-	-t "cherry-pick #$ORIGIN_PR_NUMBER $ORIGIN_PR_TITLE" \
-	-b "cherry-pick #$ORIGIN_PR_NUMBER $ORIGIN_PR_TITLE" \
-	-a $ASSIGNEES)
+		git remote update
+		git fetch --all
+		git checkout -b $AUTO_CREATE_PR_BRANCH origin/$TARGET_BRANCH
+		git cherry-pick -m 1 $GITHUB_SHA || (
+			gh pr comment $ORIGIN_PR_NUMBER --body "🤖 The current file has a conflict, and the pr cannot be automatically created."
+			gh pr edit $ORIGIN_PR_NUMBER --add-label $AUTO_CHERRY_PICK_FAILED_LABEL
+			exit 1
+		)
+		git push origin $AUTO_CREATE_PR_BRANCH
+		echo "::endgroup::"
 
-gh pr comment $ORIGIN_PR_NUMBER --body "🤖 cherry pick finished successfully 🎉!"
-gh pr edit $ORIGIN_PR_NUMBER --add-label $AUTO_CHERRY_PICK_COMPLETED_LABEL || (
-	gh label create $AUTO_CHERRY_PICK_COMPLETED_LABEL -c "#0E8A16" -d "auto cherry pick completed"
-	gh pr edit $ORIGIN_PR_NUMBER --add-label $AUTO_CHERRY_PICK_COMPLETED_LABEL
-)
+		echo "::group::GitHub Auto Create PR"
+		AUTO_CREATED_PR_LINK=$(gh pr create \
+			-B $TARGET_BRANCH \
+			-H $AUTO_CREATE_PR_BRANCH \
+			-t "cherry-pick #$ORIGIN_PR_NUMBER $ORIGIN_PR_TITLE" \
+			-b "cherry-pick #$ORIGIN_PR_NUMBER $ORIGIN_PR_TITLE" \
+			-a $ASSIGNEES)
 
-gh pr comment $AUTO_CREATED_PR_LINK --body "🤖 this a auto create pr!cherry picked from #$ORIGIN_PR_NUMBER."
-gh pr edit $AUTO_CREATED_PR_LINK --add-label "$AUTO_CHERRY_PICK_LABEL,$AUTO_CHERRY_PICK_VERSION_LABEL" || (
-	gh label create $AUTO_CHERRY_PICK_VERSION_LABEL -c "#5319E7" -d "auto cherry pick pr for $TARGET_BRANCH"
-	gh pr edit $AUTO_CREATED_PR_LINK --add-label "$AUTO_CHERRY_PICK_LABEL,$AUTO_CHERRY_PICK_VERSION_LABEL"
-)
-echo "::endgroup::"
+		gh pr comment $ORIGIN_PR_NUMBER --body "🤖 Target: #$TARGET_BRANCH cherry pick finished successfully 🎉!"
+		gh pr edit $ORIGIN_PR_NUMBER --add-label $AUTO_CHERRY_PICK_COMPLETED_LABEL || (
+			gh label create $AUTO_CHERRY_PICK_COMPLETED_LABEL -c "#0E8A16" -d "auto cherry pick completed"
+			gh pr edit $ORIGIN_PR_NUMBER --add-label $AUTO_CHERRY_PICK_COMPLETED_LABEL
+		)
+
+		gh pr comment $AUTO_CREATED_PR_LINK --body "🤖 this a auto create pr!cherry picked from #$ORIGIN_PR_NUMBER."
+		gh pr edit $AUTO_CREATED_PR_LINK --add-label "$AUTO_CHERRY_PICK_LABEL,$AUTO_CHERRY_PICK_VERSION_LABEL" || (
+			gh label create $AUTO_CHERRY_PICK_LABEL -c "#0E8A16" -d "auto cherry pick pr" -f
+			gh label create $AUTO_CHERRY_PICK_VERSION_LABEL -c "#5319E7" -d "auto cherry pick pr for $TARGET_BRANCH" -f
+			gh pr edit $AUTO_CREATED_PR_LINK --add-label "$AUTO_CHERRY_PICK_LABEL,$AUTO_CHERRY_PICK_VERSION_LABEL"
+		)
+		echo "::endgroup::"
+	fi
+done