1
0
mirror of https://github.com/esphome/esphome.git synced 2025-06-19 06:45:49 +01:00

Add @jesserockz to codeowners ()

Co-authored-by: Otto Winter <otto@otto-winter.com>
This commit is contained in:
Jesse Hills
2020-07-27 00:33:16 +12:00
committed by GitHub
parent abc83f6cb0
commit 25ad33a377
8 changed files with 53 additions and 8 deletions
CODEOWNERS
esphome/components
ct_clamp
rf_bridge
tuya
binary_sensor
climate
sensor
switch
script

@ -2,9 +2,10 @@
from pathlib import Path
import sys
import argparse
from collections import defaultdict
from esphome.helpers import write_file_if_changed
from esphome.config import get_component
from esphome.config import get_component, get_platform
from esphome.core import CORE
parser = argparse.ArgumentParser()
@ -37,20 +38,47 @@ parts = [BASE]
# Fake some diretory so that get_component works
CORE.config_path = str(root)
for path in sorted(components_dir.iterdir()):
codeowners = defaultdict(list)
for path in components_dir.iterdir():
if not path.is_dir():
continue
if not (path / '__init__.py').is_file():
continue
name = path.name
comp = get_component(name)
if comp.codeowners:
for owner in comp.codeowners:
if not owner.startswith('@'):
print(f"Codeowner {owner} for integration {name} must start with an '@' symbol!")
sys.exit(1)
codeowners[f'esphome/components/{name}/*'].extend(comp.codeowners)
for platform_path in path.iterdir():
platform_name = platform_path.stem
platform = get_platform(platform_name, name)
if platform is None:
continue
if platform_path.is_dir():
# Sub foldered platforms get their own line
if not (platform_path / '__init__.py').is_file():
continue
codeowners[f'esphome/components/{name}/{platform_name}/*'].extend(platform.codeowners)
continue
# Non-subfoldered platforms add to codeowners at component level
if not platform_path.is_file() or platform_path.name == '__init__.py':
continue
codeowners[f'esphome/components/{name}/*'].extend(platform.codeowners)
for path, owners in sorted(codeowners.items()):
owners = sorted(set(owners))
if not owners:
continue
for owner in owners:
if not owner.startswith('@'):
print(f"Codeowner {owner} for integration {path} must start with an '@' symbol!")
sys.exit(1)
parts.append(f"{path} {' '.join(owners)}")
parts.append(f"esphome/components/{name}/* {' '.join(comp.codeowners)}")
# End newline
parts.append('')