name: Backport merged pull request on: pull_request_target: types: [closed, labeled] branches: [main, releases/*] permissions: contents: write pull-requests: write jobs: backport: name: Create backport pull request runs-on: ubuntu-latest # Run the action if a PR is merged with backport labels # OR # when already merged PR is labeled with backport labels if: > github.event.pull_request.merged && ( github.event.action == 'closed' || ( github.event.action == 'labeled' && startsWith(github.event.label.name, 'backport ') ) ) steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Create backport pull requests uses: korthout/backport-action@d07416681cab29bf2661702f925f020aaa962997 # v3.4.1 with: # Inputs documented here: https://github.com/korthout/backport-action?tab=readme-ov-file#inputs github_token: ${{ github.token }} github_workspace: ${{ github.workspace }} # permit PRs with merge commits to be backported merge_commits: 'skip' # copy labels to backport to identify affected systems and priorities copy_labels_pattern: '.*' # Regex pattern to match github labels # The capture group catches the target branch # i.e. label "backport releases/FreeCAD-1-0" will create backport # PR for branch releases/FreeCAD-1-0 label_pattern: ^backport ([^ ]+)$