mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-07-12 12:17:05 -03:00
ci: fail validate when a plugin name is removed without a renames entry (#3177)
Adds a step to the validate job that diffs plugins[].name against the PR base and fails if any name disappeared without a corresponding key in the top-level "renames" map. Prevents the next airwallex-style plugin-not-found regression. Part of CC-2871. Depends on the renames map (PR A). Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7e287ffe95
commit
66dacfc456
19
.github/workflows/validate-plugins.yml
vendored
19
.github/workflows/validate-plugins.yml
vendored
@ -38,6 +38,25 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check for renamed plugins without renames entry
|
||||
run: |
|
||||
set -euo pipefail
|
||||
base="${{ github.event.pull_request.base.sha || 'origin/main' }}"
|
||||
# Names removed from plugins[] in this diff
|
||||
removed=$(comm -23 \
|
||||
<(git show "$base:.claude-plugin/marketplace.json" | jq -r '.plugins[].name' | sort) \
|
||||
<(jq -r '.plugins[].name' .claude-plugin/marketplace.json | sort))
|
||||
[ -z "$removed" ] && { echo "No plugin names removed."; exit 0; }
|
||||
# Renames keys present in HEAD
|
||||
rename_keys=$(jq -r '.renames // {} | keys[]' .claude-plugin/marketplace.json | sort)
|
||||
missing=$(comm -23 <(echo "$removed" | sort) <(echo "$rename_keys"))
|
||||
if [ -n "$missing" ]; then
|
||||
echo "::error::Plugin name(s) removed without a renames entry: $missing"
|
||||
echo "Add to .claude-plugin/marketplace.json top-level \"renames\": {\"<old>\": \"<new>\"} (or null if intentionally removed)."
|
||||
exit 1
|
||||
fi
|
||||
echo "All removed names have renames entries."
|
||||
|
||||
- uses: anthropics/claude-plugins-community/.github/actions/validate-plugins@426e469f322952061102b286b378c0c9733a0934
|
||||
with:
|
||||
marketplace-path: .claude-plugin/marketplace.json
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user