mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-09-14 02:56:11 +05:00
97 lines
3.6 KiB
YAML
97 lines
3.6 KiB
YAML
name: Duplicate Issue Detection
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
|
|
jobs:
|
|
check-duplicates:
|
|
runs-on: ubuntu-24.04
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
with:
|
|
python-version: "3.13"
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6
|
|
with:
|
|
version: "0.11.3"
|
|
enable-cache: false
|
|
|
|
- name: Resolve OpenCode and workflow tools through abxpkg
|
|
env:
|
|
ABXPKG_LIB_DIR: ${{ runner.temp }}/abx-lib
|
|
run: |
|
|
set -Eeuo pipefail
|
|
uv sync --no-cache --locked --no-sources --no-install-project
|
|
OPENCODE_CONFIG="$(uv run --no-cache --no-sync --no-sources python -c 'from abx_plugins import get_plugins_dir; print(get_plugins_dir() / "opencode" / "config.json")')"
|
|
mkdir -p "$ABXPKG_LIB_DIR/env/bin"
|
|
export PATH="$ABXPKG_LIB_DIR/env/bin:$PATH"
|
|
echo "ABXPKG_LIB_DIR=$ABXPKG_LIB_DIR" >> "$GITHUB_ENV"
|
|
echo "$ABXPKG_LIB_DIR/env/bin" >> "$GITHUB_PATH"
|
|
opencode_env="$(
|
|
uv run --no-cache --no-sync --no-sources abxpkg env \
|
|
--install \
|
|
--json \
|
|
--lib="$ABXPKG_LIB_DIR" \
|
|
--deps-from="$GITHUB_WORKSPACE/.github/configs/ci-tooling.json:ci_binaries" \
|
|
--deps-from="$GITHUB_WORKSPACE/.github/configs/ci-tooling.json:github_binaries" \
|
|
--deps-from="$OPENCODE_CONFIG:required_binaries"
|
|
)"
|
|
jq_binary="$ABXPKG_LIB_DIR/env/bin/jq"
|
|
"$jq_binary" -r 'to_entries[] | "\(.key)=\(.value)"' \
|
|
<<< "$opencode_env" >> "$GITHUB_ENV"
|
|
|
|
opencode_binary="$ABXPKG_LIB_DIR/env/bin/opencode"
|
|
echo "OPENCODE_BINARY=$opencode_binary" >> "$GITHUB_ENV"
|
|
test -L "$opencode_binary"
|
|
test -x "$opencode_binary"
|
|
|
|
- name: Check for duplicate issues
|
|
env:
|
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
OPENCODE_PERMISSION: |
|
|
{
|
|
"bash": {
|
|
"gh issue*": "allow",
|
|
"gh pr*": "allow",
|
|
"*": "deny"
|
|
},
|
|
"webfetch": "allow"
|
|
}
|
|
run: |
|
|
"$OPENCODE_BINARY" run -m anthropic/claude-haiku-4-5 "A new issue has been created:
|
|
|
|
Issue number:
|
|
${{ github.event.issue.number }}
|
|
|
|
Lookup this issue and search through existing issues and PRs (excluding #${{ github.event.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 or PRs
|
|
- 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."
|