name: Marvin Issue Dedupe # description: Automatically dedupe GitHub issues using Marvin on: issues: types: [opened] workflow_dispatch: inputs: issue_number: description: "Issue number to process for duplicate detection" required: true type: string jobs: marvin-dedupe-issues: runs-on: ubuntu-latest timeout-minutes: 10 permissions: contents: read issues: write id-token: write steps: - name: Checkout repository uses: actions/checkout@v6 - name: Generate Marvin App token id: marvin-token uses: actions/create-github-app-token@v3 with: app-id: ${{ secrets.MARVIN_APP_ID }} private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }} - name: Set dedupe prompt id: dedupe-prompt run: | cat >> $GITHUB_OUTPUT << 'EOF' PROMPT</dev/null \ || date -u -v-10M '+%Y-%m-%dT%H:%M:%SZ') HAS_RECENT=$(gh api "repos/${{ github.repository }}/issues/${ISSUE}/comments?sort=created&direction=desc&per_page=10" \ --jq "[.[] | select( .user.type == \"Bot\" and (.body | test(\"possible duplicate issues\"; \"i\")) and .created_at >= \"${CUTOFF}\" )] | length") if [ "$HAS_RECENT" -gt 0 ]; then gh issue edit "$ISSUE" --add-label "potential-duplicate" -R "${{ github.repository }}" echo "Added potential-duplicate label to #${ISSUE}" else echo "No recent duplicate comment found, skipping label" fi