name: Check Merge Fast-Forward Only permissions: pull-requests: write on: push: pull_request_target: pull_request_review: types: [submitted] jobs: check_merge: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Git run: | git config user.name "GitHub Action" git config user.email "noreply@example.com" - name: Check merge --ff-only run: | git fetch origin master:master git checkout master if [[ "${{ github.event_name }}" == "pull_request"* ]]; then git fetch origin pull/${{ github.event.pull_request.number }}/head git merge --ff-only ${{ github.event.pull_request.head.sha }} else git merge --ff-only ${{ github.sha }} fi - name: add labels uses: actions-ecosystem/action-add-labels@v1 if: failure() with: labels: | needs rebase - name: comment uses: mshick/add-pr-comment@v2 if: failure() with: message: | This pull request has conflicts, please rebase.