name: Merge freeze

on:
  pull_request:
    types:
      [
        opened,
        ready_for_review,
        synchronize,
        reopened,
        labeled,
        unlabeled,
        enqueued,
      ]
    branches: [main]
  merge_group:
    types: [checks_requested]

permissions: read-all

jobs:
  check-merge-freeze:
    name: Check
    # This condition is to avoid blocking the PR causing the freeze in the first place.
    if: |
      (!startsWith(github.event.pull_request.title || github.event.merge_group.head_commit.message, '[chore] Prepare release')) ||
      ((github.event.pull_request.user.login || github.event.merge_group.head_commit.author.name) != 'otelbot[bot]')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          sparse-checkout: .github/workflows/scripts
      - run: ./.github/workflows/scripts/check-merge-freeze.sh
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          REPO: open-telemetry/opentelemetry-collector
