name: git-l10n

on: [push, pull_request_target]

jobs:
  git-po-helper:
    if: >-
      endsWith(github.repository, '/git-po') ||
      contains(github.head_ref, 'l10n') ||
      contains(github.ref, 'l10n')
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - name: Setup base and head objects
        id: setup-tips
        run: |
          if test "${{ github.event_name }}" = "pull_request_target"
          then
            base=${{ github.event.pull_request.base.sha }}
            head=${{ github.event.pull_request.head.sha }}
          else
            base=${{ github.event.before }}
            head=${{ github.event.after }}
          fi
          echo "::set-output name=base::$base"
          echo "::set-output name=head::$head"
      - name: Run partial clone
        run: |
          git -c init.defaultBranch=master init --bare .
          git remote add \
            --mirror=fetch \
            origin \
            https://github.com/${{ github.repository }}
          # Fetch tips that may be unreachable from github.ref:
          # - For a forced push, "$base" may be unreachable.
          # - For a "pull_request_target" event, "$head" may be unreachable.
          args=
          for commit in \
            ${{ steps.setup-tips.outputs.base }} \
            ${{ steps.setup-tips.outputs.head }}
          do
            case $commit in
            *[^0]*)
              args="$args $commit"
              ;;
            *)
              # Should not fetch ZERO-OID.
              ;;
            esac
          done
          git -c protocol.version=2 fetch \
            --progress \
            --no-tags \
            --no-write-fetch-head \
            --filter=blob:none \
            origin \
            ${{ github.ref }} \
            $args
      - uses: actions/setup-go@v2
        with:
          go-version: '>=1.16'
      - name: Install git-po-helper
        run: go install github.com/git-l10n/git-po-helper@main
      - name: Install other dependencies
        run: |
          sudo apt-get update -q &&
          sudo apt-get install -q -y gettext
      - name: Run git-po-helper
        id: check-commits
        run: |
          exit_code=0
          git-po-helper check-commits \
            --github-action-event="${{ github.event_name }}" -- \
            ${{ steps.setup-tips.outputs.base }}..${{ steps.setup-tips.outputs.head }} \
            >git-po-helper.out 2>&1 || exit_code=$?
          if test $exit_code -ne 0 || grep -q WARNING git-po-helper.out
          then
            # Remove ANSI colors which are proper for console logs but not
            # proper for PR comment.
            echo "COMMENT_BODY<<EOF" >>$GITHUB_ENV
            perl -pe 's/\e\[[0-9;]*m//g; s/\bEOF$//g' git-po-helper.out >>$GITHUB_ENV
            echo "EOF" >>$GITHUB_ENV
          fi
          cat git-po-helper.out
          exit $exit_code
      - name: Create comment in pull request for report
        uses: mshick/add-pr-comment@v1
        if: >-
          always() &&
          github.event_name == 'pull_request_target' &&
          env.COMMENT_BODY != ''
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          repo-token-user-login: 'github-actions[bot]'
          message: >
            ${{ steps.check-commits.outcome == 'failure' && 'Errors and warnings' || 'Warnings' }}
            found by [git-po-helper](https://github.com/git-l10n/git-po-helper#readme) in workflow
            [#${{ github.run_number }}](${{ env.GITHUB_SERVER_URL }}/${{ github.repository }}/actions/runs/${{ github.run_id }}):

            ```

            ${{ env.COMMENT_BODY }}

            ```
