name: i18n PR auto-merge

on:
  pull_request:
    types: [opened, synchronize, reopened, labeled]
  workflow_dispatch:

jobs:
  run-and-merge:
    if: contains(github.event.pull_request.labels.*.name, 'i18n') &&
      github.event.pull_request.base.ref == 'main' &&
      github.event.pull_request.head.ref == 'l10n_main'
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Count lines changed
        run: |
          # Calculate the total number of lines changed (added, removed, or modified)
          LINES_CHANGED=$(git diff --shortstat ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | awk '{print $4 + $6 + $8}')
          echo "Total lines changed: $LINES_CHANGED"

          # Check if the number of lines changed is more than 20
          if [ "$LINES_CHANGED" -le 20 ]; then
            echo "ERROR: 20 or fewer lines have been changed. Failing the check."
            exit 1
          else
            echo "Success: More than 20 lines have been changed."
          fi

      - name: Merge pull request
        if: ${{ success() }}
        run: |
          PR_NUMBER=$(echo ${{ github.event.pull_request.number }})
          gh pr merge $PR_NUMBER --auto --squash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}