icinga2/.github/workflows/backbot.yml
dependabot[bot] 5a4054ebd5
Bump korthout/backport-action from 3.4.1 to 4.0.0
Bumps [korthout/backport-action](https://github.com/korthout/backport-action) from 3.4.1 to 4.0.0.
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](d07416681c...3634249d41)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 04:17:32 +00:00

59 lines
3.1 KiB
YAML

name: Backbot
on:
pull_request_target:
types:
- closed
- labeled
# Disable all permissions for the GITHUB_TOKEN, as we are using a GitHub App token instead.
permissions: {}
jobs:
backbot:
runs-on: ubuntu-latest
if: |
github.repository_owner == 'Icinga' &&
github.event.pull_request.merged == true && (
github.event.action != 'labeled' ||
startsWith(github.event.label.name, 'backport-to-support/')
)
steps:
- name: Generate GitHub Installation Access Token
# Use GitHub App to generate an installation access token to allow PRs created by Backbot to trigger workflows.
# This is necessary because PRs created using the default GITHUB_TOKEN do not trigger workflows plus
# GitHub doesn't allow to alter any file within the .github/workflows directory using the default GITHUB_TOKEN.
# This action will create a token with the permissions defined below and is valid only for 1 hour, but if the
# job completes before that 1 hour limit, the token will automatically be revoked.
uses: actions/create-github-app-token@v2.2.1
id: backbot-token
with:
app-id: ${{ secrets.BACKBOT_APP_ID }}
private-key: ${{ secrets.BACKBOT_APP_PRIVATE_KEY }}
skip-token-revoke: false # Revoke the token after the job is done (is the default behavior).
# GitHub recommends to explicitly list the permissions the token should have instead of inheriting all the
# permissions from the GitHub App itself. See https://github.com/actions/create-github-app-token
permission-contents: write # Allow to create, delete and update branches.
permission-pull-requests: write # Allow to create and update PRs.
permission-workflows: write # Allow to backport PRs that modify workflow files.
permission-issues: write # Needed to add comments to the PRs created by Backbot and the original PR.
- name: Checkout
uses: actions/checkout@v6
with:
token: ${{ steps.backbot-token.outputs.token }} # To make authenticated git operations.
sha: ${{ github.event.pull_request.head.sha }} # Checkout the latest commit of the merged PR.
- name: Run Backbot
uses: korthout/backport-action@3634249d418881baa47fd6bae694506145f7a61b # v4.0.0
with:
github_token: ${{ steps.backbot-token.outputs.token }}
copy_labels_pattern: '^(?!cla-signed$).*' # copy all labels other than the cla-signed label
label_pattern: 'backport-to-(support\/\d+\.\d+)' # regex to match labels like backport-to-support/2.14
conflict_resolution: 'draft_commit_conflicts' # create a draft PR if there are conflicts
copy_requested_reviewers: true # copy requested reviewers from the original PR
merge_commits: skip # skip merge commits found in the original PR history
pull_description: |-
Backport of #${pull_number} to `${target_branch}`, triggered by a label.
---
This is an automated backport PR. Please review it carefully before merging.