name: Duplicate PR Detection on: schedule: # Run weekly on Monday at 9 AM UTC - cron: '0 9 * * 1' workflow_dispatch: # Allow manual trigger pull_request: types: [opened, reopened] jobs: check-duplicates: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y jq curl - name: Check for duplicate PRs env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_URL: ${{ secrets.GITEA_URL || 'https://forge.alexanderwhitestone.com' }} REPO: ${{ github.repository }} run: | chmod +x ./scripts/cleanup-duplicate-prs.sh ./scripts/cleanup-duplicate-prs.sh --dry-run - name: Create issue if duplicates found if: failure() uses: actions/github-script@v7 with: script: | const title = 'Duplicate PRs Detected'; const body = `## Duplicate PRs Found The duplicate PR detection workflow found potential duplicate PRs. **Action Required:** 1. Review the duplicate PRs 2. Close older duplicates 3. Keep the newest PR for each issue **Workflow Run:** ${context.runId} **Repository:** ${context.repo.owner}/${context.repo.repo} This issue was automatically created by the duplicate PR detection workflow.`; await github.rest.issues.create({ owner: context.repo.owner, repo: context.repo.repo, title, body, labels: ['maintenance', 'automated'] }); # Notify on manual trigger notify: needs: check-duplicates if: github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest steps: - name: Send notification run: | echo "Duplicate PR check completed" echo "Check the workflow run for details"