Files with excluded extensions are not shown; configure exclude_exts in gitstats.conf.
| Extension | Files | Lines | Share | Lines/file | |
|---|---|---|---|---|---|
| py | 19,979 | 4,063,449 | 62.3% | 203 | |
| ambr | 2,091 | 1,346,004 | 20.6% | 643 | |
| json | 6,277 | 1,011,237 | 15.5% | 161 | |
| yaml | 1,017 | 67,769 | 1.0% | 66 | |
| ini | 2 | 6,872 | 0.1% | 3,436 | |
| yml | 23 | 6,373 | 0.1% | 277 | |
| txt | 24 | 4,816 | 0.1% | 200 | |
| md | 36 | 4,620 | 0.1% | 128 | |
| xml | 95 | 2,055 | 0.0% | 21 | |
| no extension | 7 | 1,389 | 0.0% | 198 | |
| corrupt | 2 | 1,380 | 0.0% | 690 | |
| toml | 12 | 1,100 | 0.0% | 91 | |
| pyi | 8 | 298 | 0.0% | 37 | |
| Python | 1 | 279 | 0.0% | 279 | |
| sh | 3 | 81 | 0.0% | 27 | |
| dev | 1 | 76 | 0.0% | 76 | |
| pls | 9 | 65 | 0.0% | 7 | |
| ics | 1 | 58 | 0.0% | 58 | |
| js | 5 | 48 | 0.0% | 9 | |
| rst | 1 | 33 | 0.0% | 33 | |
| ts | 2 | 31 | 0.0% | 15 | |
| knxkeys | 1 | 26 | 0.0% | 26 | |
| jsonc | 1 | 25 | 0.0% | 25 | |
| pem | 1 | 22 | 0.0% | 22 | |
| m3u | 5 | 15 | 0.0% | 3 | |
| jinja | 4 | 10 | 0.0% | 2 | |
| m3u8 | 2 | 9 | 0.0% | 4 | |
| csv | 1 | 5 | 0.0% | 5 | |
| not_yaml | 1 | 4 | 0.0% | 4 | |
| tflite | 3 | 3 | 0.0% | 1 | |
| in | 1 | 3 | 0.0% | 3 | |
| conf | 2 | 2 | 0.0% | 1 | |
| mp3 | 10 | 1 | 0.0% | 0 | |
| jpg | 9 | 1 | 0.0% | 0 | |
| mp4 | 1 | 1 | 0.0% | 1 | |
| not_json | 1 | 1 | 0.0% | 1 | |
| notyaml | 1 | 1 | 0.0% | 1 | |
| tar | 17 | — | — | — | |
| png | 14 | — | — | — | |
| zip | 13 | — | — | — | |
| pcm | 5 | — | — | — | |
| decrypted | 2 | — | — | — | |
| db | 1 | — | — | — | |
| gif | 1 | — | — | — | |
| hacs | 1 | — | — | — | |
| 1 | — | — | — | ||
| typed | 1 | — | — | — | |
| webp | 1 | — | — | — |
Files in the current tree touched most often across all commits. High-churn files are hotspots that may benefit from extra review or refactoring.
| File | Times Changed | |
|---|---|---|
| requirements_all.txt | 24,524 | |
| homeassistant/package_constraints.txt | 3,949 | |
| homeassistant/const.py | 2,414 | |
| CODEOWNERS | 2,121 | |
| pyproject.toml | 1,996 | |
| homeassistant/generated/integrations.json | 1,452 | |
| homeassistant/components/frontend/manifest.json | 1,241 | |
| requirements.txt | 1,152 | |
| homeassistant/generated/config_flows.py | 1,087 | |
| mypy.ini | 993 | |
| requirements_test.txt | 761 | |
| .strict-typing | 724 | |
| .github/workflows/ci.yaml | 676 | |
| script/gen_requirements_all.py | 669 | |
| homeassistant/core.py | 663 | |
| homeassistant/config_entries.py | 639 | |
| homeassistant/components/frontend/__init__.py | 590 | |
| homeassistant/components/zha/manifest.json | 583 | |
| homeassistant/components/mqtt/__init__.py | 526 | |
| homeassistant/bootstrap.py | 520 | |
| homeassistant/components/bluetooth/manifest.json | 515 | |
| homeassistant/components/esphome/manifest.json | 474 | |
| homeassistant/helpers/entity.py | 435 | |
| homeassistant/components/automation/__init__.py | 414 | |
| homeassistant/helpers/config_validation.py | 392 |
Change frequency by file size →
How Home Assistant compares with other Python open source projects →
How Home Assistant ranks among Python open source projects by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true