diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml new file mode 100644 index 00000000..1656d796 --- /dev/null +++ b/.github/workflows/backport.yml @@ -0,0 +1,46 @@ +name: Backport + +on: + pull_request_target: + types: + - closed + - labeled + +permissions: + pull-requests: write + +jobs: + backport: + name: Backport + runs-on: ubuntu-latest + # Only react to merged PRs for security reasons. + # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target. + if: | + github.event.pull_request.merged == true + && contains( + join(github.event.pull_request.labels.*.name, '---'), + 'backport' + ) + && ( + (github.event.action == 'labeled' && startsWith(github.event.label.name, 'backport')) || + (github.event.action == 'closed') + ) + steps: + - name: Generate token + id: generate_token + uses: actions/create-github-app-token@v2 + with: + app-id: ${{ vars.ALCHEMY_BOT_APP_ID }} + private-key: ${{ secrets.ALCHEMY_BOT_APP_PRIVATE_KEY }} + - name: Backport pull request + uses: sorenlouv/backport-github-action@v10.2.0 + with: + github_token: ${{ steps.generate_token.outputs.token }} + auto_backport_label_prefix: backport-to- + add_original_reviewers: true + - name: Info log + if: ${{ success() }} + run: cat ~/.backport/backport.info.log + - name: Debug log + if: ${{ failure() }} + run: cat ~/.backport/backport.debug.log