From 862d068667f2d17f90103a52d23f289b19b69357 Mon Sep 17 00:00:00 2001 From: Kevin Boulongne Date: Tue, 3 Sep 2024 11:19:27 +0200 Subject: [PATCH] Add `rebase` label --- .github/workflows/rebase-default-branch.yml | 59 +++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/rebase-default-branch.yml diff --git a/.github/workflows/rebase-default-branch.yml b/.github/workflows/rebase-default-branch.yml new file mode 100644 index 000000000..0270bc5f2 --- /dev/null +++ b/.github/workflows/rebase-default-branch.yml @@ -0,0 +1,59 @@ +# GitHub Actions Virtual Environments +# https://github.com/actions/virtual-environments/ + +# Rebases a pull request on the repo's default branch when the "rebase" label is added +# Note: you'll need to add a personal access token to your repo, `PERSONAL_ACCESS_TOKEN`. (`REBASE_PR_TOKEN`) +# Link: https://github.com/jessesquires/gh-workflows/blob/main/.github/workflows/rebase-default-branch.yml + +name: Rebase Pull Request + +on: + pull_request: + types: [ labeled ] + +env: + DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} + +jobs: + main: + if: ${{ contains(github.event.*.labels.*.name, 'rebase') }} + name: Rebase + runs-on: ubuntu-latest + steps: + - name: git checkout + uses: actions/checkout@v3 + with: + token: ${{ secrets.REBASE_PR_TOKEN }} + ref: ${{ github.event.pull_request.head.ref }} + fetch-depth: 0 + + # Link: https://httgp.com/signing-commits-in-github-actions/ + - name: Import bot's GPG key for signing commits + id: import-gpg + uses: crazy-max/ghaction-import-gpg@v4 + with: + gpg_private_key: ${{ secrets.BOT_GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.BOT_GPG_PASSPHRASE }} + git_config_global: true + git_user_signingkey: true + git_commit_gpgsign: true + + - name: perform rebase + run: | + git config --global user.email "kevin.boulongne+bot@gmail.com" + git status + git pull + git checkout "$DEFAULT_BRANCH" + git status + git pull + git checkout "$GITHUB_HEAD_REF" + git rebase "$DEFAULT_BRANCH" + git push --force-with-lease + git status + + # Link: https://github.com/marketplace/actions/actions-ecosystem-remove-labels + - name: remove label + if: always() + uses: actions-ecosystem/action-remove-labels@v1 + with: + labels: rebase