from pathlib import Path from qmk.json_schema import json_load def maintainers(file): """Yields maintainers for a file. """ from codeowners import CodeOwners codeowners_file = Path('CODEOWNERS') codeowners = CodeOwners(codeowners_file.read_text()) maintainers = [owner[1] for owner in codeowners.of(str(file))] file_dir = file if file.is_dir() else file.parent cur_path = Path('.') for path_part in file_dir.parts: cur_path = cur_path / path_part info_file = cur_path / 'info.json' if info_file.exists(): new_info_data = json_load(info_file) maintainers = new_info_data.get('maintainer').replace(',', ' ').split() maintainers = ['@' + maintainer for maintainer in maintainers] for maintainer in maintainers: yield '@qmk/collaborators' if maintainer == 'qmk' else maintainer