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,170
in the current tree
Bus Factor
1
Sebastián Ramírez is primary owner of 2,647 of 3,170 files
Single-Owner Files
1,269
40.0% of tracked files
Contributors
764
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
docs/en/data/sponsors_badge.ymlSebastián Ramírez38
docs/en/data/people.ymlSebastián Ramírez30
docs/en/data/github_sponsors.ymlSebastián Ramírez28
docs/en/data/contributors.ymlSebastián Ramírez20
docs/en/data/translation_reviewers.ymlSebastián Ramírez20
docs/en/data/translators.ymlSebastián Ramírez20
scripts/deploy_docs_status.pySebastián Ramírez7
tests/test_dependency_overrides.pySebastián Ramírez7
scripts/sponsors.pySebastián Ramírez6
docs/en/docs/css/termynal.cssSebastián Ramírez6
Table: the 100 most-changed of 1,269 single-owner files
FileSole ownerCommits
docs/en/data/sponsors_badge.ymlSebastián Ramírez38
docs/en/data/people.ymlSebastián Ramírez30
docs/en/data/github_sponsors.ymlSebastián Ramírez28
docs/en/data/contributors.ymlSebastián Ramírez20
docs/en/data/translation_reviewers.ymlSebastián Ramírez20
docs/en/data/translators.ymlSebastián Ramírez20
scripts/deploy_docs_status.pySebastián Ramírez7
tests/test_dependency_overrides.pySebastián Ramírez7
scripts/sponsors.pySebastián Ramírez6
docs/en/docs/css/termynal.cssSebastián Ramírez6
docs/en/docs/tutorial/frontend.mdSebastián Ramírez6
docs/en/data/members.ymlSebastián Ramírez6
scripts/notify_translations.pySebastián Ramírez6
tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.pySebastián Ramírez6
tests/test_tutorial/test_response_model/test_tutorial003_03.pySebastián Ramírez6
tests/test_datetime_custom_encoder.pySebastián Ramírez6
tests/test_router_include_context.pySebastián Ramírez5
docs/en/docs/newsletter.mdSebastián Ramírez5
docs/es/docs/advanced/openapi-callbacks.mdSebastián Ramírez5
docs/es/docs/tutorial/security/simple-oauth2.mdSebastián Ramírez5
tests/test_tutorial/test_testing/test_tutorial003.pySebastián Ramírez5
tests/test_duplicate_models_openapi.pySebastián Ramírez5
tests/test_read_with_orm_mode.pySebastián Ramírez5
docs/es/docs/environment-variables.mdSebastián Ramírez4
docs/es/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.mdSebastián Ramírez4
docs/es/docs/tutorial/extra-data-types.mdSebastián Ramírez4
docs/tr/docs/advanced/openapi-callbacks.mdSebastián Ramírez4
docs/tr/docs/help-fastapi.mdSebastián Ramírez4
docs/tr/docs/tutorial/security/simple-oauth2.mdSebastián Ramírez4
docs/ko/docs/advanced/security/oauth2-scopes.mdSebastián Ramírez4
docs/es/docs/deployment/server-workers.mdSebastián Ramírez4
tests/test_tutorial/test_custom_response/test_tutorial009.pySebastián Ramírez4
tests/test_tutorial/test_custom_response/test_tutorial009b.pySebastián Ramírez4
docs/en/docs/tutorial/stream-json-lines.mdSebastián Ramírez4
docs/es/docs/tutorial/body-updates.mdSebastián Ramírez4
tests/test_callable_endpoint.pySebastián Ramírez4
tests/test_security_oauth2_authorization_code_bearer_scopes_openapi.pySebastián Ramírez4
tests/test_tutorial/test_testing/test_tutorial002.pySebastián Ramírez4
tests/benchmarks/test_general_performance.pySebastián Ramírez4
fastapi/middleware/asyncexitstack.pySebastián Ramírez4
scripts/playwright/request_form_models/image01.pySebastián Ramírez4
.github/ISSUE_TEMPLATE/config.ymlSebastián Ramírez4
docs_src/query_params_str_validations/tutorial004_py310.pySebastián Ramírez4
docs_src/query_params_str_validations/tutorial010_py310.pySebastián Ramírez4
docs_src/schema_extra_example/tutorial004_py310.pySebastián Ramírez4
fastapi/security/base.pySebastián Ramírez4
fastapi/telemetry/_runtime.pySebastián Ramírez3
tests/test_telemetry/test_runtime.pySebastián Ramírez3
fastapi/telemetry/_asgi.pySebastián Ramírez3
.github/pr-submit.ymlSebastián Ramírez3
tests/test_dependency_models.pySebastián Ramírez3
docs/fr/docs/advanced/stream-data.mdSebastián Ramírez3
docs/zh-hant/docs/advanced/stream-data.mdSebastián Ramírez3
docs/ja/docs/advanced/stream-data.mdSebastián Ramírez3
docs/de/docs/advanced/stream-data.mdSebastián Ramírez3
docs/es/docs/advanced/stream-data.mdSebastián Ramírez3
docs/tr/docs/advanced/additional-status-codes.mdSebastián Ramírez3
docs/tr/docs/advanced/stream-data.mdSebastián Ramírez3
docs/tr/docs/how-to/custom-request-and-route.mdSebastián Ramírez3
docs/tr/docs/how-to/separate-openapi-schemas.mdSebastián Ramírez3
docs/pt/docs/advanced/stream-data.mdSebastián Ramírez3
docs/zh/docs/advanced/stream-data.mdSebastián Ramírez3
docs/uk/docs/advanced/stream-data.mdSebastián Ramírez3
docs/ko/docs/advanced/stream-data.mdSebastián Ramírez3
docs/ko/docs/deployment/concepts.mdSebastián Ramírez3
docs/ko/docs/how-to/custom-request-and-route.mdSebastián Ramírez3
docs/ru/docs/advanced/stream-data.mdSebastián Ramírez3
docs/ko/docs/deployment/fastapicloud.mdSebastián Ramírez3
docs/tr/docs/deployment/fastapicloud.mdSebastián Ramírez3
docs/tr/docs/deployment/server-workers.mdSebastián Ramírez3
docs/pt/docs/deployment/fastapicloud.mdSebastián Ramírez3
docs/es/docs/tutorial/header-params.mdSebastián Ramírez3
docs/tr/docs/fastapi-cli.mdSebastián Ramírez3
docs/en/docs/tutorial/server-sent-events.mdSebastián Ramírez3
docs/es/docs/how-to/general.mdSebastián Ramírez3
docs/es/docs/how-to/index.mdSebastián Ramírez3
docs_src/extra_models/tutorial003_py310.pySebastián Ramírez3
tests/test_dependency_contextvars.pySebastián Ramírez3
tests/test_dependency_paramless.pySebastián Ramírez3
tests/test_tutorial/test_behind_a_proxy/test_tutorial001_01.pySebastián Ramírez3
tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.pySebastián Ramírez3
tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.pySebastián Ramírez3
tests/test_tutorial/test_dependencies/test_tutorial008e.pySebastián Ramírez3
tests/test_tutorial/test_testing/test_main_a.pySebastián Ramírez3
docs/ja/llm-prompt.mdSebastián Ramírez3
tests/test_arbitrary_types.pySebastián Ramírez3
docs/en/docs/img/tutorial/request-form-models/image01.pngSebastián Ramírez3
tests/test_tutorial/test_request_form_models/__init__.pySebastián Ramírez3
docs_src/query_params_str_validations/tutorial004_an_py310.pySebastián Ramírez3
docs_src/query_params_str_validations/tutorial008_py310.pySebastián Ramírez3
docs_src/query_params_str_validations/tutorial010_an_py310.pySebastián Ramírez3
docs_src/schema_extra_example/tutorial001_py310.pySebastián Ramírez3
docs_src/schema_extra_example/tutorial004_an_py310.pySebastián Ramírez3
docs_src/schema_extra_example/tutorial002_py310.pySebastián Ramírez3
docs_src/schema_extra_example/tutorial003_py310.pySebastián Ramírez3
docs/en/docs/img/sponsors/testdriven.svgSebastián Ramírez3
docs/en/docs/advanced/opentelemetry.mdSebastián Ramírez2
fastapi/telemetry/_api.pySebastián Ramírez2
tests/test_telemetry/_subprocess.pySebastián Ramírez2
tests/test_telemetry/conftest.pySebastián Ramírez2

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
Sebastián Ramírez2,6471,0222,909
Yurii Motov4171931,637
Nils-Hero Lindemann82131
Alejandra77203
Yurii Karabas6214
YungYueh ChanLee509
Bighneswar Parida444
Rafael de Oliveira Marques30113
Rupsi Kaushik3130
John Riebold335
Sofie Van Landeghem2089
Valentyn2176
hy.lee2016
史雲昔 (Vincy SHI)209
alexmitelman228
Austin Orr228
Felix Böhm226
Steinthor Palsson205
pablocm83205
Saurabh Vijay Salve224
bebop204
[object Object]223
Jonathan Fulton11178
David Montague1159
Jonathan Ehwald1119

Showing top 25 of 764 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
fastapi/routing.py52Sebastián Ramírez59.5%
fastapi/dependencies/utils.py50Sebastián Ramírez57.8%
pyproject.toml49Sebastián Ramírez59.9%
docs/en/mkdocs.yml42Sebastián Ramírez66.4%
fastapi/applications.py42Sebastián Ramírez51.9%
fastapi/openapi/utils.py33Sebastián Ramírez57.5%
README.md30Sebastián Ramírez79.1%
fastapi/encoders.py28Sebastián Ramírez45.6%
fastapi/utils.py27Sebastián Ramírez55.2%
docs/en/docs/index.md24Sebastián Ramírez50.7%
docs/pt/docs/index.md23Sebastián Ramírez48.9%
docs/en/docs/tutorial/sql-databases.md23Sebastián Ramírez37.8%
fastapi/security/oauth2.py21Sebastián Ramírez53.2%
docs/es/docs/index.md20Sebastián Ramírez56.5%
docs/zh/docs/index.md20Sebastián Ramírez47.5%
docs/ko/docs/index.md20Sebastián Ramírez44.7%
docs/en/docs/async.md20Sebastián Ramírez35.5%
docs/ru/docs/index.md19Sebastián Ramírez48.8%
docs/fr/docs/index.md18Sebastián Ramírez48.6%
docs/ja/docs/index.md18Sebastián Ramírez45.5%