Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
29,753
in the current tree
Bus Factor
11
11 authors are primary owner of 14,983 of 29,753 files
Single-Owner Files
6,668
22.4% of tracked files
Contributors
4,808
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
tests/components/reolink/snapshots/test_diagnostics.ambrstarkillerOG31
tests/components/teslemetry/snapshots/test_diagnostics.ambrBrett Adams26
tests/components/overkiz/fixtures/setup/cloud_somfy_tahoma_v2_europe.jsonMick Vleeshouwer23
tests/components/comelit/const.pySimone Chemelli19
tests/components/husqvarna_automower/fixtures/mower.jsonThomas5555519
homeassistant/helpers/template/extensions/__init__.pyFranck Nijhof18
tests/components/habitica/fixtures/user.jsonManu18
tests/components/lamarzocco/snapshots/test_diagnostics.ambrJosef Zweck17
tests/components/teslemetry/fixtures/vehicle_data.jsonBrett Adams16
tests/components/melcloud_home/snapshots/test_diagnostics.ambrErwin Douna15
Table: the 100 most-changed of 6,668 single-owner files
FileSole ownerCommits
tests/components/reolink/snapshots/test_diagnostics.ambrstarkillerOG31
tests/components/teslemetry/snapshots/test_diagnostics.ambrBrett Adams26
tests/components/overkiz/fixtures/setup/cloud_somfy_tahoma_v2_europe.jsonMick Vleeshouwer23
tests/components/comelit/const.pySimone Chemelli19
tests/components/husqvarna_automower/fixtures/mower.jsonThomas5555519
homeassistant/helpers/template/extensions/__init__.pyFranck Nijhof18
tests/components/habitica/fixtures/user.jsonManu18
tests/components/lamarzocco/snapshots/test_diagnostics.ambrJosef Zweck17
tests/components/teslemetry/fixtures/vehicle_data.jsonBrett Adams16
tests/components/melcloud_home/snapshots/test_diagnostics.ambrErwin Douna15
homeassistant/components/hydrawise/const.pyDavid Knowles15
tests/components/indevolt/fixtures/gen_2.jsonA. Gideonse15
tests/components/airos/snapshots/test_diagnostics.ambrTom14
tests/components/habitica/fixtures/tasks.jsonManu13
homeassistant/components/onedrive_for_business/strings.jsonJosef Zweck13
tests/components/victron_ble/fixtures.pyRaj Laud13
homeassistant/components/russound_rio/const.pyNoah Husby13
homeassistant/components/trmnl/quality_scale.yamlJoost Lekkerkerker12
homeassistant/components/portainer/const.pyErwin Douna12
homeassistant/components/homee/const.pyMarkus Adrario12
tests/components/myuplink/snapshots/test_diagnostics.ambrÅke Strandberg12
tests/components/heos/__init__.pyAndrew Sayre12
tests/components/overkiz/fixtures/setup/local_somfy_tahoma_v2_europe.jsonMick Vleeshouwer11
tests/components/habitica/snapshots/test_services.ambrManu11
tests/components/duco/snapshots/test_diagnostics.ambrRonald van der Meer11
tests/components/withings/snapshots/test_diagnostics.ambrJoost Lekkerkerker11
tests/components/onedrive/const.pyJosef Zweck11
tests/components/sofar/snapshots/test_diagnostics.ambrdarkrain-nl11
homeassistant/components/sofar/quality_scale.yamldarkrain-nl11
homeassistant/components/collection_image/image.pykarwosts11
tests/components/liebherr/snapshots/test_diagnostics.ambrmettolen11
tests/components/bring/snapshots/test_diagnostics.ambrManu10
tests/components/habitica/snapshots/test_diagnostics.ambrManu10
tests/components/teslemetry/test_switch.pyBrett Adams10
tests/components/teslemetry/fixtures/vehicle_data_alt.jsonBrett Adams10
homeassistant/components/duco/const.pyRonald van der Meer10
homeassistant/components/mikrotik/sensor.pySimone Chemelli10
homeassistant/components/airgradient/quality_scale.yamlJoost Lekkerkerker10
tests/components/spotify/snapshots/test_diagnostics.ambrJoost Lekkerkerker10
homeassistant/components/imou/const.pyImou-OpenPlatform10
homeassistant/components/melcloud_home/icons.jsonErwin Douna10
homeassistant/components/neopool/const.pyMiloš Svašek10
tests/components/sofar/__init__.pydarkrain-nl10
tests/components/doorbird/__init__.pyJ. Nick Koston10
homeassistant/components/lyngdorf/media_player.pyAlex Fishlock10
tests/components/hue/const.pyMarcel van der Veldt10
homeassistant/components/gatus/quality_scale.yamlHamish9
homeassistant/components/fumis/manifest.jsonFranck Nijhof9
homeassistant/components/solaredge_modbus/manifest.jsonFranck Nijhof9
tests/components/plugwise/fixtures/m_adam_cooling/data.jsonBouwe Westerdijk9
tests/components/plugwise/fixtures/m_adam_heating/data.jsonBouwe Westerdijk9
homeassistant/components/airly/quality_scale.yamlMaciej Bieniek9
tests/components/sensibo/fixtures/data.jsonG Johansson9
tests/components/teslemetry/test_device_tracker.pyBrett Adams9
homeassistant/components/bosch_shc/select.pyThomas9
homeassistant/components/hr_energy_qube/strings.jsonMattie9
tests/components/smartthings/snapshots/test_diagnostics.ambrJoost Lekkerkerker9
tests/components/imou/const.pyImou-OpenPlatform9
homeassistant/components/my_pv/strings.jsonrrooggiieerr9
homeassistant/components/zonneplan/coordinator.pyErwin Douna9
homeassistant/components/zonneplan/icons.jsonErwin Douna9
tests/components/melcloud_home/fixtures/context.jsonErwin Douna9
homeassistant/components/besen/strings.jsonYoav Mor9
tests/components/myuplink/fixtures/device_points_nibe_f730.jsonÅke Strandberg9
tests/components/airzone_cloud/test_binary_sensor.pyÁlvaro Fernández Rojas9
homeassistant/components/google_health/quality_scale.yamlAllen Porter8
homeassistant/components/power/conditions.yamlErik Montnemery8
homeassistant/components/hydrawise/quality_scale.yamlFranck Nijhof8
homeassistant/components/fumis/icons.jsonFranck Nijhof8
homeassistant/components/knx/storage/entity_store_validation.pyMatthias Alphart8
homeassistant/components/imgw_pib/icons.jsonMaciej Bieniek8
homeassistant/components/nobo_hub/const.pyØyvind Matheson Wergeland8
tests/components/yale_smart_alarm/snapshots/test_diagnostics.ambrG Johansson8
tests/components/teslemetry/test_number.pyBrett Adams8
tests/components/media_player/test_llm.pyPaulus Schoutsen8
script/check_requirements/render.pyRobert Resch8
homeassistant/components/vicare/coordinator.pyChristian Lackas8
homeassistant/components/overseerr/quality_scale.yamlJoost Lekkerkerker8
homeassistant/components/imou/icons.jsonImou-OpenPlatform8
homeassistant/components/lamarzocco/const.pyJosef Zweck8
homeassistant/components/neopool/icons.jsonMiloš Svašek8
homeassistant/components/sofar/icons.jsondarkrain-nl8
homeassistant/components/lyngdorf/quality_scale.yamlAlex Fishlock8
homeassistant/components/hdfury/icons.jsonGlenn de Haan8
homeassistant/components/kiosker/icons.jsonMartin Claesson8
tests/components/anthropic/snapshots/test_config_flow.ambrDenis Shulyaka7
homeassistant/components/indi_allsky/coordinator.pyHamish7
homeassistant/components/gatus/sensor.pyHamish7
homeassistant/components/cover/triggers.yamlErik Montnemery7
homeassistant/components/illuminance/triggers.yamlErik Montnemery7
homeassistant/components/power/triggers.yamlErik Montnemery7
homeassistant/components/water_heater/conditions.yamlErik Montnemery7
homeassistant/components/overkiz/quality_scale.yamlMick Vleeshouwer7
homeassistant/components/solaredge_modbus/coordinator.pyFranck Nijhof7
homeassistant/components/solaredge_modbus/icons.jsonFranck Nijhof7
homeassistant/components/scorpiontrack/quality_scale.yamlAnthony7
homeassistant/components/axle_energy/strings.jsonAnthony7
homeassistant/components/led_infrared/icons.jsonManu7
tests/components/plugwise/fixtures/m_adam_multiple_devices_per_zone/data.jsonBouwe Westerdijk7
tests/components/knx/fixtures/config_store_binarysensor.jsonMatthias Alphart7

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
epenet5,29854514,803
Paulus Schoutsen2,16754911,481
Franck Nijhof1,89042110,990
Erik Montnemery1,3972579,681
Joost Lekkerkerker1,1504607,402
J. Nick Koston1,0561764,726
Marc Mueller46769,371
Manu446145871
G Johansson400473,841
Simone Chemelli367711,078
Robert Resch345332,100
Erwin Douna329851,400
Michael273352,178
Allen Porter23563705
Maciej Bieniek22941498
Robert Hillis224451,504
Raman Gupta22342582
Brett Adams22047306
tronikos18358327
Aaron Bach17835352
Josef Zweck177331,121
Jan Bouwhuis16261,000
Matthias Alphart15639317
Åke Strandberg14843174
Abílio Costa145585,652

Showing top 25 of 4808 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
requirements_all.txt1,951J. Nick Koston10.6%
CODEOWNERS854J. Nick Koston4.4%
homeassistant/generated/config_flows.py524J. Nick Koston4.9%
homeassistant/generated/integrations.json413Joost Lekkerkerker23.5%
mypy.ini255Marc Mueller13.3%
.strict-typing248Marc Mueller13.8%
script/gen_requirements_all.py158J. Nick Koston13.7%
homeassistant/const.py152Paulus Schoutsen47.0%
homeassistant/package_constraints.txt125J. Nick Koston32.2%
script/hassfest/quality_scale.py122Manu12.3%
homeassistant/generated/zeroconf.py114J. Nick Koston15.8%
homeassistant/generated/dhcp.py88J. Nick Koston41.9%
requirements.txt80J. Nick Koston36.0%
homeassistant/config_entries.py74J. Nick Koston24.1%
homeassistant/components/media_player/__init__.py74Paulus Schoutsen21.8%
pyproject.toml69Franck Nijhof33.6%
homeassistant/bootstrap.py65Paulus Schoutsen29.8%
homeassistant/helpers/config_validation.py65Paulus Schoutsen17.4%
homeassistant/components/light/__init__.py64Paulus Schoutsen24.4%
homeassistant/core.py63J. Nick Koston26.8%