init
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

@@ -0,0 +1,37 @@
name: 'Plugin registry validate'
# Runs on PRs that touch the curated plugin registry. Uses `pull_request` (NOT
# pull_request_target), read-only permissions, and NO secrets — so cloning +
# statically auditing a submitter's plugin can never reach a token or write the
# repo. No plugin code is executed (the manifest is parsed, the audit is static).
on:
pull_request:
paths:
- 'plugins-registry.json'
permissions:
contents: read
jobs:
validate:
name: Validate registry entries
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
# Deterministic shape gate (no network).
- name: Validate registry shape
run: node validate-plugin-registry.mjs
# Deep gate: clone each entry at its pinned SHA + static-validate + audit.
# No secrets are present in this job; nothing the plugin ships is executed.
- name: Clone + audit each registry entry
run: node validate-plugin-registry.mjs --deep
- name: One plugin per PR
run: |
CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- plugins-registry.json | wc -l)
if [ "$CHANGED" -gt 1 ]; then echo "Only plugins-registry.json may change in a registry PR"; exit 1; fi