diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 97616eae83..ff6bd63414 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -44,20 +44,20 @@ jobs: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} git_user_signingkey: true git_commit_gpgsign: true - - name: Set context - id: set_context + - name: Get PR title and body + id: pr_info run: | - LABEL_NAMES=`cat ${GITHUB_EVENT_PATH} | jq -r --arg PREFIX $TARGET_LABEL_NAME_PREFIX '[.pull_request.labels[]? | select(.name | startswith($PREFIX)) | .name] | join(" ")'` - - echo "LABEL_NAMES=${LABEL_NAMES}" >> $GITHUB_OUTPUT # e.g.) actions/backport/v1.7 actions/backport/v1.8 - echo "${LABEL_NAMES}" + echo "PR_TITLE=$(jq --raw-output .pull_request.title $GITHUB_EVENT_PATH)" >> $GITHUB_ENV + echo "PR_BODY=$(jq --raw-output .pull_request.body $GITHUB_EVENT_PATH)" >> $GITHUB_ENV - name: Create PR - if: ${{ steps.set_context.outputs.LABEL_NAMES != '' }} + if: ${{ github.event.pull_request.labels.*.name == '${TARGET_LABEL_NAME_PREFIX}*' }} env: - LABEL_NAMES: ${{ steps.set_context.outputs.LABEL_NAMES }} + PR_TITLE: ${{ steps.pr_info.outputs.PR_TITEL }} + PR_BODY: ${{ steps.pr_info.outputs.PR_BODY }} GITHUB_USER: ${{ secrets.DISPATCH_USER }} GITHUB_TOKEN: ${{ secrets.DISPATCH_TOKEN }} run: | + LABEL_NAMES=`echo "${{ github.event.pull_request.labels.*.name }}" | jq -r '[.[] | select(startswith("actions/backport/"))] | join(" ")'` for LABEL_NAME in ${LABEL_NAMES}; do BRANCH_NAME=`echo "${LABEL_NAME}" | sed -e "s:^${TARGET_LABEL_NAME_PREFIX}::"` # e.g) release/vx.x, main BACKPORT_BRANCH_NAME="${BACKPORT_BRANCH_NAME_PREFIX}/${BRANCH_NAME}/${GITHUB_HEAD_REF}" # e.g) backport/release/vx.x/{current branch name} @@ -74,6 +74,6 @@ jobs: git push origin ${BACKPORT_BRANCH_NAME} gh pr create --base ${BRANCH_NAME} \ - --title "Backport to ${BRANCH_NAME}" \ - --body-file .github/PULL_REQUEST_TEMPLATE.md + --title "Backport to ${BRANCH_NAME} for ${PR_TITLE}" \ + --body "${PR_BODY}" done