1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 11:36:05 +01:00
home-manager/lib/python/validate-maintainer-entries.py
Austin Horstman defabc11ab ci: move validate maintainers logic to lib
Allow easily running the individual checks outside of GHA for easier
testing/modification.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-17 15:15:39 -05:00

46 lines
1.4 KiB
Python
Executable file

#!/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()