name: Automatic Backport on: pull_request_target: branches: ['master'] types: ['labeled', 'closed'] jobs: backport: name: Backport PR if: github.event.pull_request.merged == true && !(contains(github.event.pull_request.labels.*.name, 'backport')) runs-on: ubuntu-latest permissions: id-token: write pull-requests: write contents: write steps: # Workaround not to fail the workflow if the PR does not need a backport # https://github.com/sorenlouv/backport-github-action/issues/127#issuecomment-2258561266 - name: Check for backport labels id: check_labels run: |- labels='${{ toJSON(github.event.pull_request.labels.*.name) }}' echo "$labels" matched=$(echo "${labels}" | jq '. | map(select(startswith("backport-to-"))) | length') echo "matched=$matched" echo "matched=$matched" >> $GITHUB_OUTPUT - name: Backport Action if: fromJSON(steps.check_labels.outputs.matched) > 0 uses: sorenlouv/backport-github-action@v9.5.1 with: github_token: ${{ secrets.PROWLER_BOT_ACCESS_TOKEN }} auto_backport_label_prefix: backport-to- - name: Info log if: ${{ success() && fromJSON(steps.check_labels.outputs.matched) > 0 }} run: cat ~/.backport/backport.info.log - name: Debug log if: ${{ failure() && fromJSON(steps.check_labels.outputs.matched) > 0 }} run: cat ~/.backport/backport.debug.log