#!/usr/bin/env python3 """ Validate maintainer entries in modules/lib/maintainers.nix This script validates that all maintainer entries have required fields and that the data types are correct. """ import json import subprocess import sys def main(): print("🔍 Validating maintainer entries...") result = subprocess.run( ["nix", "eval", "--file", "modules/lib/maintainers.nix", "--json"], capture_output=True, text=True, check=True, ) maintainers = json.loads(result.stdout) errors = [] for name, data in maintainers.items(): if "github" not in data: errors.append(f'{name}: Missing required field "github"') if "githubId" not in data: errors.append(f'{name}: Missing required field "githubId"') if "githubId" in data: github_id = data["githubId"] if not isinstance(github_id, int): errors.append( f"{name}: githubId must be a number, not a string: {github_id} (type: {type(github_id).__name__})" ) elif github_id <= 0: errors.append(f"{name}: githubId must be positive: {github_id}") if errors: print("❌ Validation errors found:") for error in errors: print(f" - {error}") sys.exit(1) else: print("✅ All maintainer entries are valid") print(f"✅ Validated {len(maintainers)} maintainer entries") if __name__ == "__main__": main()