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
- 3,061
- in the current tree
- Bus Factor
- 3
- 3 authors are primary owner of 1,717 of 3,061 files
- Single-Owner Files
- 893
- 29.2% of tracked files
- Contributors
- 1,072
- 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.
| File | Sole owner | Commits |
|---|---|---|
| Library/Homebrew/test/sandbox_landlock_spec.rb | Mike McQuaid | 14 |
| Library/Homebrew/rubocops/install_steps.rb | Mike McQuaid | 14 |
| Library/Homebrew/test/rubocops/no_fileutils_rmrf_spec.rb | Issy Long | 14 |
| Library/Homebrew/extend/os/linux/sandbox/landlock.rb | Mike McQuaid | 12 |
| Library/Homebrew/rubocops/cask/install_steps.rb | Mike McQuaid | 12 |
| Library/Homebrew/rubocops/no_fileutils_rmrf.rb | Issy Long | 11 |
| Library/Homebrew/test/vulns/history_spec.rb | Patrick Linnane | 7 |
| Library/Homebrew/cmd/exec.sh | Mike McQuaid | 6 |
| Library/Homebrew/download_strategy/cvs_download_strategy.rb | Mike McQuaid | 5 |
| Library/Homebrew/download_strategy/fossil_download_strategy.rb | Mike McQuaid | 5 |
Table: the 100 most-changed of 893 single-owner files
| File | Sole owner | Commits |
|---|---|---|
| Library/Homebrew/test/sandbox_landlock_spec.rb | Mike McQuaid | 14 |
| Library/Homebrew/rubocops/install_steps.rb | Mike McQuaid | 14 |
| Library/Homebrew/test/rubocops/no_fileutils_rmrf_spec.rb | Issy Long | 14 |
| Library/Homebrew/extend/os/linux/sandbox/landlock.rb | Mike McQuaid | 12 |
| Library/Homebrew/rubocops/cask/install_steps.rb | Mike McQuaid | 12 |
| Library/Homebrew/rubocops/no_fileutils_rmrf.rb | Issy Long | 11 |
| Library/Homebrew/test/vulns/history_spec.rb | Patrick Linnane | 7 |
| Library/Homebrew/cmd/exec.sh | Mike McQuaid | 6 |
| Library/Homebrew/download_strategy/cvs_download_strategy.rb | Mike McQuaid | 5 |
| Library/Homebrew/download_strategy/fossil_download_strategy.rb | Mike McQuaid | 5 |
| Library/Homebrew/bundle/subcommand/dump.rb | Mike McQuaid | 5 |
| Library/Homebrew/extend/ENV/sensitive.rb | Mike McQuaid | 5 |
| Library/Homebrew/test/vulns/cpan_sec_spec.rb | Andrew Nesbitt | 5 |
| Library/Homebrew/vulns/advisory_overrides.rb | Patrick Linnane | 4 |
| .github/workflows/licenses.yml | BrewTestBot | 4 |
| Library/Homebrew/utils/as_user.sh | Mike McQuaid | 4 |
| Library/Homebrew/download_strategy/vcs_download_strategy.rb | Mike McQuaid | 4 |
| Library/Homebrew/cmd/as-console-user.rb | Mike McQuaid | 4 |
| Library/Homebrew/cmd/as-console-user.sh | Mike McQuaid | 4 |
| Library/Homebrew/download_strategy/bazaar_download_strategy.rb | Mike McQuaid | 4 |
| Library/Homebrew/bundle/subcommand/add.rb | Mike McQuaid | 4 |
| Library/Homebrew/utils/phase_timings.rb | Mike McQuaid | 4 |
| Library/Homebrew/cmd/exec.rb | Mike McQuaid | 4 |
| Library/Homebrew/bundle/extensions.rb | Mike McQuaid | 4 |
| Library/Homebrew/test/vulns/repology_spec.rb | Andrew Nesbitt | 4 |
| Library/Homebrew/sorbet/rbi/dsl/rubo_cop/cop/homebrew/no_fileutils_rmrf.rbi | Issy Long | 4 |
| .github/workflows/tap-new-autobump.yml | Sean Molenaar | 4 |
| Library/Homebrew/os/mac/pkgconfig/14/libcurl.pc | Bo Anderson | 4 |
| Library/Homebrew/os/mac/pkgconfig/13/libcurl.pc | Bo Anderson | 4 |
| Library/Homebrew/tap.sh | Ruoyu Zhong | 4 |
| Library/Homebrew/sorbet/rbi/dsl/homebrew/dev_cmd/update_portable_ruby.rbi | Patrick Linnane | 3 |
| Library/Homebrew/test/cmd/as-brew-user_spec.rb | Mike McQuaid | 3 |
| Library/Homebrew/test/cmd/shared_examples/as_user.rb | Mike McQuaid | 3 |
| docs/Homebrew-for-Mac-Admins.md | Mike McQuaid | 3 |
| Library/Homebrew/test/shims/shared/git_spec.rb | Mike McQuaid | 3 |
| Library/Homebrew/test/pkg_postinstall_spec.rb | Mike McQuaid | 3 |
| Library/Homebrew/utils/macos_user.sh | Mike McQuaid | 3 |
| Library/Homebrew/bundle/subcommand/edit.rb | Mike McQuaid | 3 |
| Library/Homebrew/bundle/subcommand/remove.rb | Mike McQuaid | 3 |
| Library/Homebrew/extend/pathname/observer_pathname_extension.rb | Mike McQuaid | 3 |
| Library/Homebrew/tap/abstract_core_tap.rb | Mike McQuaid | 3 |
| package/resources/WELCOME.rtf | Mike McQuaid | 3 |
| Library/Homebrew/download_strategy/mercurial_download_strategy.rb | Mike McQuaid | 3 |
| Library/Homebrew/test/test_bot/formulae_detect_spec.rb | Mike McQuaid | 3 |
| Library/Homebrew/test/support/fixtures/cask/Casks/with-install-steps.rb | Mike McQuaid | 3 |
| Library/Homebrew/bundle/subcommand/check.rb | Mike McQuaid | 3 |
| .codex/hooks.json | Mike McQuaid | 3 |
| Library/Homebrew/test/support/fixtures/cask/Casks/invalid/invalid-depends-on-macos-bare-and-version.rb | Mike McQuaid | 3 |
| Library/Homebrew/vulns/repology.rb | Andrew Nesbitt | 3 |
| Library/Homebrew/test/vulns/purl_spec.rb | Andrew Nesbitt | 3 |
| Library/Homebrew/extend/array.rbi | Douglas Eichelberger | 3 |
| Library/Homebrew/standalone.rb | Bo Anderson | 3 |
| Library/Homebrew/os/mac/pkgconfig/13/expat.pc | Bo Anderson | 3 |
| Library/Homebrew/os/mac/pkgconfig/13/sqlite3.pc | Bo Anderson | 3 |
| Library/Homebrew/sorbet/rbi/dsl/homebrew/api/formula_struct.rbi | Rylan Polster | 3 |
| Library/Homebrew/rubocops/disable_comment.rb | Kristján Oddsson | 3 |
| Library/Homebrew/test/bottle_transition_spec.rb | Patrick Linnane | 2 |
| Library/Homebrew/test/dev-cmd/update-portable-ruby_spec.rb | Patrick Linnane | 2 |
| Library/Homebrew/rubocops/cmake_args.rb | Patrick Linnane | 2 |
| Library/Homebrew/test/rubocops/cmake_args_spec.rb | Patrick Linnane | 2 |
| docs/Checksum-Requirements.md | Patrick Linnane | 2 |
| Library/Homebrew/sorbet/rbi/dsl/homebrew/cmd/as_console_user.rbi | BrewTestBot | 2 |
| .github/codeql/extensions/homebrew-actions.yml | BrewTestBot | 2 |
| Library/Homebrew/sorbet/rbi/dsl/homebrew/dev_cmd/rubydoc.rbi | BrewTestBot | 2 |
| Library/Homebrew/sorbet/rbi/dsl/homebrew/dev_cmd/generate_analytics_api.rbi | Mike McQuaid | 2 |
| Library/Homebrew/test/development_tools_spec.rb | Mike McQuaid | 2 |
| Library/Homebrew/utils.sh | Mike McQuaid | 2 |
| Library/Homebrew/cmd/as-brew-user.rb | Mike McQuaid | 2 |
| Library/Homebrew/test/rubocops/class/test_resource_spec.rb | Mike McQuaid | 2 |
| Library/Homebrew/missing.rb | Mike McQuaid | 2 |
| Library/Homebrew/test/startup/sudo_spec.rb | Mike McQuaid | 2 |
| Library/Homebrew/test/system_command_sudo_spec.rb | Mike McQuaid | 2 |
| Library/Homebrew/extend/os/linux/sandbox/backend.rb | Mike McQuaid | 2 |
| Library/Homebrew/test/support/helper/spec/shared_context/integration_test_spec.rb | Mike McQuaid | 2 |
| Library/Homebrew/dev-cmd/benchmark.rb | Mike McQuaid | 2 |
| Library/Homebrew/install/check.rb | Mike McQuaid | 2 |
| Library/Homebrew/analytics/subcommand.rb | Mike McQuaid | 2 |
| Library/Homebrew/api/packages_index.rb | Mike McQuaid | 2 |
| Library/Homebrew/completions/subcommand.rb | Mike McQuaid | 2 |
| Library/Homebrew/developer/subcommand.rb | Mike McQuaid | 2 |
| Library/Homebrew/extend/blank/string.rb | Mike McQuaid | 2 |
| Library/Homebrew/extend/enumerable/hash.rb | Mike McQuaid | 2 |
| Library/Homebrew/extend/object/deep_dup/array.rb | Mike McQuaid | 2 |
| Library/Homebrew/extend/object/deep_dup/hash.rb | Mike McQuaid | 2 |
| Library/Homebrew/livecheck/strategy/ruby_gems.rb | Mike McQuaid | 2 |
| Library/Homebrew/os/mac/ffi/native_library.rb | Mike McQuaid | 2 |
| Library/Homebrew/tap/core_cask_tap.rb | Mike McQuaid | 2 |
| Library/Homebrew/utils/data.rb | Mike McQuaid | 2 |
| Library/Homebrew/utils/text.rb | Mike McQuaid | 2 |
| Library/Homebrew/test/downloadable_spec.rb | Mike McQuaid | 2 |
| Library/Homebrew/test/os/linux/keg_spec.rb | Mike McQuaid | 2 |
| .github/workflows/commit-style.yml | Mike McQuaid | 2 |
| .gitattributes | Mike McQuaid | 2 |
| Library/Homebrew/sorbet/rbi/dsl/homebrew/dev_cmd/formula_analytics.rbi | Mike McQuaid | 2 |
| Library/Homebrew/extend/os/mac/cask/utils/trash.rb | Mike McQuaid | 2 |
| Library/Homebrew/cask/utils/trash.rb | Mike McQuaid | 2 |
| Library/Homebrew/extend/os/cask/utils/trash.rb | Mike McQuaid | 2 |
| Library/Homebrew/dependency/uses_from_macos_dependency.rb | Mike McQuaid | 2 |
| Library/Homebrew/download_strategy/homebrew_curl_download_strategy.rb | Mike McQuaid | 2 |
| Library/Homebrew/prof/vernier_fork_guard.rb | Mike McQuaid | 2 |
Ownership by author
Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.
| Author | Files owned | Solely owned | Files touched |
|---|---|---|---|
| Mike McQuaid | 1,086 | 267 | 1,983 |
| Markus Reiter | 323 | 61 | 1,089 |
| Issy Long | 308 | 6 | 1,387 |
| Douglas Eichelberger | 273 | 80 | 1,395 |
| BrewTestBot | 136 | 36 | 452 |
| Patrick Linnane | 126 | 63 | 797 |
| Michael Cho | 119 | 115 | 518 |
| Bo Anderson | 104 | 88 | 692 |
| Rylan Polster | 69 | 8 | 601 |
| Sam Ford | 65 | 2 | 239 |
| Bevan Kay | 42 | 28 | 225 |
| Andrew Nesbitt | 31 | 16 | 88 |
| Carlo Cabrera | 29 | 5 | 264 |
| Sean Molenaar | 26 | 3 | 160 |
| Jack Nagel | 25 | 0 | 96 |
| FX Coudert | 24 | 21 | 55 |
| Eric Knibbe | 18 | 3 | 492 |
| Ruoyu Zhong | 14 | 3 | 199 |
| hyuraku | 13 | 5 | 194 |
| Justin Krehel | 13 | 10 | 71 |
| edel67 | 13 | 3 | 27 |
| AltCode | 10 | 7 | 70 |
| apainintheneck | 9 | 3 | 203 |
| JBYoshi | 9 | 6 | 16 |
| Harald Nordgren | 8 | 3 | 91 |
Most shared files
Files touched by the most people — shared code where changes are most likely to need coordination.
| File | Contributors | Primary owner | Owner share |
|---|---|---|---|
| Library/Homebrew/formula.rb | 149 | Mike McQuaid | 18.8% |
| Library/Homebrew/download_strategy.rb | 122 | Jack Nagel | 24.0% |
| manpages/brew.1 | 112 | Mike McQuaid | 28.9% |
| docs/Manpage.md | 107 | BrewTestBot | 28.9% |
| Library/Homebrew/utils.rb | 90 | Mike McQuaid | 21.8% |
| Library/Homebrew/formula_installer.rb | 89 | Mike McQuaid | 30.0% |
| bin/brew | 78 | Max Howell | 31.8% |
| Library/Homebrew/cmd/install.rb | 73 | Mike McQuaid | 26.3% |
| Library/Homebrew/brew.sh | 70 | Mike McQuaid | 41.8% |
| Library/Homebrew/cmd/upgrade.rb | 70 | Mike McQuaid | 32.3% |
| Library/Homebrew/diagnostic.rb | 68 | Mike McQuaid | 34.2% |
| docs/Formula-Cookbook.md | 68 | Mike McQuaid | 28.3% |
| completions/zsh/_brew | 64 | BrewTestBot | 38.8% |
| Library/Homebrew/dev-cmd/audit.rb | 63 | Mike McQuaid | 27.7% |
| Library/Homebrew/keg.rb | 63 | Mike McQuaid | 23.3% |
| Library/Homebrew/extend/pathname.rb | 61 | Jack Nagel | 21.6% |
| Library/Homebrew/cmd/info.rb | 61 | Mike McQuaid | 22.4% |
| Library/Homebrew/utils/github.rb | 61 | Mike McQuaid | 17.3% |
| Library/Homebrew/cmd/doctor.rb | 60 | Jack Nagel | 35.1% |
| Library/Homebrew/tap.rb | 60 | Mike McQuaid | 23.7% |
How Homebrew compares with other open source languages and developer tools →
How Homebrew ranks among open source languages and developer tools by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
The smallest workflow
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