From 941cb25cbe0530d8c28d4e1836083fae7523d4f8 Mon Sep 17 00:00:00 2001 From: Timmy Time Date: Sat, 11 Apr 2026 00:21:03 +0000 Subject: [PATCH] fix(ci): extract inline Python to script for validate-config workflow The inline Python in playbook-schema job had YAML parsing issues. Extracted to scripts/validate_playbook_schema.py. Refs: #461 --- scripts/validate_playbook_schema.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 scripts/validate_playbook_schema.py diff --git a/scripts/validate_playbook_schema.py b/scripts/validate_playbook_schema.py new file mode 100644 index 00000000..36921227 --- /dev/null +++ b/scripts/validate_playbook_schema.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Validate playbook YAML files have required keys.""" +import yaml +import sys +import glob + +required_keys = {'name', 'description'} + +for f in glob.glob('playbooks/*.yaml'): + with open(f) as fh: + try: + data = yaml.safe_load(fh) + if not isinstance(data, dict): + print(f'ERROR: {f} is not a YAML mapping') + sys.exit(1) + missing = required_keys - set(data.keys()) + if missing: + print(f'WARNING: {f} missing keys: {missing}') + print(f'OK: {f}') + except yaml.YAMLError as e: + print(f'ERROR: {f}: {e}') + sys.exit(1)