esdiag 0.16.4

Elastic Stack diagnostic collector and processor
name: OpenSpec Archived

on:
  pull_request:
    paths:
      - "openspec/changes/**"

jobs:
  check-archived:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Fail if openspec/changes/* directories are present in PR
        run: |
          base="${{ github.event.pull_request.base.sha }}"
          head="${{ github.event.pull_request.head.sha }}"

          new_changes=$(git diff --name-only --diff-filter=A "$base" "$head" \
            | grep '^openspec/changes/' \
            | grep -v '^openspec/changes/archive/' \
            | sed 's|^openspec/changes/||' \
            | cut -d/ -f1 \
            | sort -u)

          if [ -n "$new_changes" ]; then
            echo "::error::This PR adds the following openspec/changes/* directory(ies) that have not been archived:"
            echo "$new_changes" | while read -r dir; do
              echo "  - openspec/changes/$dir"
            done
            echo ""
            echo "Run 'openspec archive' to move them to openspec/archive/ before merging."
            exit 1
          fi

          echo "No unarchived openspec/changes directories found."