@@ -20,36 +20,33 @@ jobs:
2020 run : python3 -c "import json; json.load(open('registry.json'))"
2121
2222 - name : Validate registry schema
23- run : python3 << 'EOF'
24- import json, sys
25-
26- data = json.load(open("registry.json"))
27- assert isinstance(data, list), "registry.json must be an array"
28-
29- required = ["name", "repo", "slug", "description", "type", "skills", "rules", "mcpTools", "status"]
30- valid_types = ["cursor-plugin", "mcp-server"]
31- errors = []
32-
33- for i, tool in enumerate(data) :
23+ shell : bash
24+ run : |
25+ python3 << 'PYEOF'
26+ import json, sys
27+ data = json.load(open("registry.json"))
28+ assert isinstance(data, list), "registry.json must be an array"
29+ required = ["name", "repo", "slug", "description", "type", "skills", "rules", "mcpTools", "status"]
30+ valid_types = ["cursor-plugin", "mcp-server"]
31+ errors = []
32+ for i, tool in enumerate(data):
3433 for field in required:
35- if field not in tool :
36- errors.append(f "Entry {i} ({ tool.get(' name', '?')}) : missing '{ field}'" )
34+ if field not in tool:
35+ errors.append("Entry %d (%s): missing '%s'" % (i, tool.get(" name", "?"), field) )
3736 if tool.get("type") not in valid_types:
38- errors.append(f "Entry {i} ({ tool.get(' name', '?')}) : invalid type '{ tool.get(' type')}'" )
37+ errors.append("Entry %d (%s): invalid type '%s'" % (i, tool.get(" name", "?"), tool.get(" type")) )
3938 if not isinstance(tool.get("skills", 0), int):
40- errors.append(f "Entry {i} ({tool.get('name', '?')}) : skills must be int")
39+ errors.append("Entry %d (%s) : skills must be int" % (i, tool.get("name", "?")) )
4140 if not isinstance(tool.get("rules", 0), int):
42- errors.append(f "Entry {i} ({tool.get('name', '?')}) : rules must be int")
41+ errors.append("Entry %d (%s) : rules must be int" % (i, tool.get("name", "?")) )
4342 if not isinstance(tool.get("mcpTools", 0), int):
44- errors.append(f"Entry {i} ({tool.get('name', '?')}) : mcpTools must be int")
45-
46- if errors :
43+ errors.append("Entry %d (%s): mcpTools must be int" % (i, tool.get("name", "?")))
44+ if errors:
4745 for e in errors:
48- print(f "::error::{e}" , file=sys.stderr)
46+ print("::error::" + e , file=sys.stderr)
4947 sys.exit(1)
50-
51- print(f"Registry valid : {len(data)} tools")
52- EOF
48+ print("Registry valid: %d tools" % len(data))
49+ PYEOF
5350
5451 validate-docs :
5552 name : Validate docs site
0 commit comments