name: Close issue on /close

on:
  issue_comment:
    types: [created, edited]

jobs:
  closeIssueOnClose:
    # Skip this job if the comment was created/edited on a PR
    if: ${{ !github.event.issue.pull_request }}
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: none
      contents: read

    steps:
      - name: Check for /close comment
        id: check_comment
        run: |
          if [[ "${{ contains(github.event.comment.body, '/close') }}" == "true" ]]; then
            echo "comment=true" >> $GITHUB_ENV
          else
            echo "comment=false" >> $GITHUB_ENV
          fi

      - name: Check if the user is allowed
        id: check_user
        if: env.comment == 'true'
        run: |
          ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC")
          if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
            echo "user=true" >> $GITHUB_ENV
          else
            echo "user=false" >> $GITHUB_ENV
          fi

      - name: Close issue if conditions are met
        if: env.comment == 'true' && env.user == 'true'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          ISSUE_NUMBER: ${{ github.event.issue.number }}
        run: |
          echo Closing the issue...
          gh issue close $ISSUE_NUMBER --repo ${{ github.repository }}