name: Comment on potential duplicate bug/crash reports

on:
  issues:
    types: [opened]
  workflow_dispatch:
    inputs:
      issue_number:
        description: "Issue number to analyze"
        required: true
        type: number

concurrency:
  group: potential-duplicate-check-${{ github.event.issue.number || inputs.issue_number }}
  cancel-in-progress: true

jobs:
  identify-duplicates:
    # For manual testing, allow running on any branch; for automatic runs, only on main repo
    if: github.event_name == 'workflow_dispatch' || github.repository == 'zed-industries/zed'
    runs-on: ubuntu-latest
    timeout-minutes: 5

    permissions:
      contents: read
      issues: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          sparse-checkout: script/github-check-new-issue-for-duplicates.py
          sparse-checkout-cone-mode: false

      - name: Get github app token
        id: get-app-token
        uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v1.11.7
        with:
          app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }}
          private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }}
          owner: zed-industries

      - name: Set up Python
        uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
        with:
          python-version: "3.12"

      - name: Install dependencies
        run: pip install requests

      - name: Run duplicate detection
        id: detect
        env:
          GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY_ISSUE_DEDUP }}
          ISSUE_NUMBER: ${{ github.event.issue.number || inputs.issue_number }}
        run: |
          python script/github-check-new-issue-for-duplicates.py "$ISSUE_NUMBER" > result.json
          cat result.json

      - name: Write job summary
        if: always()
        run: |
          echo '```json' >> "$GITHUB_STEP_SUMMARY"
          if [[ -f result.json ]] && jq empty result.json 2>/dev/null; then
            jq . result.json >> "$GITHUB_STEP_SUMMARY"
          else
            echo '{"error": "No valid result.json generated. Check logs for details."}' >> "$GITHUB_STEP_SUMMARY"
          fi
          echo '```' >> "$GITHUB_STEP_SUMMARY"
