diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0e63aeb --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + # Keep GitHub Actions pinned SHAs up to date + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + # Keep npm dependencies up to date + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/auto-fix-issue.yml b/.github/workflows/auto-fix-issue.yml index 24dcdeb..4a0c0c7 100644 --- a/.github/workflows/auto-fix-issue.yml +++ b/.github/workflows/auto-fix-issue.yml @@ -20,10 +20,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 # hard cap so a stuck agent cannot burn runner minutes steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Node (project test environment) - uses: actions/setup-node@v4 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: 22 cache: npm @@ -31,7 +31,7 @@ jobs: - run: npm ci - name: Setup Python & mini-swe-agent - uses: actions/setup-python@v5 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: '3.12' @@ -104,7 +104,7 @@ jobs: - name: Upload trajectory if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: traj-${{ github.event.issue.number }} path: traj-*.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f021be..59263bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,8 +13,8 @@ jobs: matrix: node-version: [18, 20, 22] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ matrix.node-version }} cache: npm diff --git a/.github/workflows/plugin-scanner.yml b/.github/workflows/plugin-scanner.yml new file mode 100644 index 0000000..1f11eb3 --- /dev/null +++ b/.github/workflows/plugin-scanner.yml @@ -0,0 +1,22 @@ +name: Plugin Security Scan + +# HOL Plugin Scanner CI, as recommended by awesome-ai-plugins' SCANNER_GUIDE.md. +# Keeps the listing's full trust score and surfaces findings in PR checks. + +on: [pull_request, push] + +permissions: + contents: read + +jobs: + scan: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: hashgraph-online/ai-plugin-scanner-action@46ad86451b45941cd853a03ee6ccdb55f3dbee28 # v1.2.683 + with: + plugin_dir: "." + min_score: 80 + fail_on_severity: high diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..100062a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,19 @@ +# Security Policy + +## Supported Versions + +Only the latest published version on npm receives security fixes. + +| Version | Supported | +| ------- | ------------------ | +| latest | :white_check_mark: | +| older | :x: | + +## Reporting a Vulnerability + +Please do **not** open a public issue for security vulnerabilities. + +- Preferred: use [GitHub private vulnerability reporting](https://github.com/jkrandom-sudo/opencode-plugin-loop/security/advisories/new) to file a private advisory. +- Include: affected version, a description of the issue, steps to reproduce, and potential impact. + +We will acknowledge reports within 72 hours and aim to ship a fix (or a mitigation note) within 7 days of confirmation. Once a fix is released we will credit the reporter in the release notes unless they prefer to remain anonymous.