name: "Add Copyright Headers"

on:
  pull_request_target:
    types:
      - opened
      - reopened
      - synchronize
      - ready_for_review
  workflow_dispatch: {}

jobs:
  add-copyright-headers:
    runs-on: ubuntu-latest
    env:
      HEAD_REF: ${{ github.event.pull_request.head.ref }}
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # https://github.com/actions/checkout/releases/tag/v4.1.1
        with:
          ref: ${{ github.event.pull_request.head.ref }}
          repository: ${{ github.event.pull_request.head.repo.full_name }}
      - name: Set git identity
        run: |-
          git config user.name "hashicorp-copywrite[bot]"
          git config user.email "110428419+hashicorp-copywrite[bot]@users.noreply.github.com"
      - name: Setup Copywrite tool
        uses: hashicorp/setup-copywrite@867a1a2a064a0626db322392806428f7dc59cb3e # v1.1.2
      - name: Add headers using Copywrite tool
        run: copywrite headers
      - name: Check if there are any changes
        id: get_changes
        run: echo "changed=$(git status --porcelain | wc -l)" >> $GITHUB_OUTPUT
      - name: Push changes
        if: steps.get_changes.outputs.changed != 0
        run: |-
          git add .
          git commit -s -m "[COMPLIANCE] Add required copyright headers"
          git push origin HEAD:$HEAD_REF
