72 lines
2.6 KiB
YAML
72 lines
2.6 KiB
YAML
name: duplicate-issues
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
workflow_dispatch:
|
|
inputs:
|
|
issue_number:
|
|
description: Issue number to check manually
|
|
required: true
|
|
type: number
|
|
|
|
jobs:
|
|
check-duplicates:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Set up Bun
|
|
uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2.1.3
|
|
|
|
- name: Install opencode
|
|
run: curl -fsSL https://opencode.ai/install | bash
|
|
|
|
- name: Check for duplicate issues
|
|
env:
|
|
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
ISSUE_NUMBER: ${{ github.event.issue.number || inputs.issue_number }}
|
|
OPENCODE_PERMISSION: |
|
|
{
|
|
"bash": {
|
|
"*": "deny",
|
|
"gh issue*": "allow"
|
|
},
|
|
"webfetch": "deny"
|
|
}
|
|
run: |
|
|
if [ -z "$ISSUE_NUMBER" ]; then
|
|
echo "issue_number is required"
|
|
exit 1
|
|
fi
|
|
|
|
opencode run -m ${{ vars.OPENCODE_MODEL }} "A new issue has been created:'
|
|
|
|
Issue number:
|
|
$ISSUE_NUMBER
|
|
|
|
Lookup this issue and search through existing issues (excluding #$ISSUE_NUMBER) in this repository to find any potential duplicates of this new issue.
|
|
Consider:
|
|
1. Similar titles or descriptions
|
|
2. Same error messages or symptoms
|
|
3. Related functionality or components
|
|
4. Similar feature requests
|
|
|
|
If you find any potential duplicates, please comment on the new issue with:
|
|
- A brief explanation of why it might be a duplicate
|
|
- Links to the potentially duplicate issues
|
|
- A suggestion to check those issues first
|
|
|
|
Use this format for the comment:
|
|
'This issue might be a duplicate of existing issues. Please check:
|
|
- #[issue_number]: [brief description of similarity]
|
|
|
|
Feel free to ignore if none of these address your specific case.'
|
|
|
|
If no clear duplicates are found, do not comment."
|