Skip to content

Add rebase label

Add rebase label #5

# 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/[email protected]
with:
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 }}
git_config_global: true
git_user_signingkey: true
git_commit_gpgsign: true
- name: perform rebase
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.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