name: backport on: pull_request_target: types: [closed, labeled] jobs: backport: permissions: contents: write pull-requests: write name: Backport Pull Request if: github.event.pull_request.merged runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/create-github-app-token@v1 id: app-token with: app-id: ${{ vars.BACKPORT_APP }} private-key: ${{ secrets.BACKPORT_KEY }} - name: Create backport PR id: backport uses: korthout/backport-action@v3 with: pull_title: "${pull_title}" label_pattern: "^ci:backport ([^ ]+)$" github_token: ${{ steps.app-token.outputs.token }} - name: Create failed backport label if: ${{ steps.backport.outputs.was_successful == 'false' }} uses: actions/github-script@v7 with: script: | github.rest.issues.addLabels({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, labels: ['needs:backport'] }) - name: Enable automerge if: ${{ steps.backport.outputs.was_successful == 'true' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: gh pr merge --rebase --auto ${{ steps.backport.outputs.created_pull_numbers }}