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
2,103
in the current tree
Bus Factor
4
4 authors are primary owner of 1,177 of 2,103 files
Single-Owner Files
735
35.0% of tracked files
Contributors
466
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
t/coredns/db.test.local罗泽轩7
apisix/plugins/serverless/init.lua罗泽轩6
apisix/discovery/consul/client.luaNic5
t/tsconfig.jsonZeping Bai5
apisix/plugins/ai-cache.luaMohammad Izzraff Janius4
t/plugin/ai-proxy-stream-truncated.tNic3
apisix/plugins/ai-providers/anthropic.luaNic3
apisix/plugins/ai-providers/openai-compatible.luaNic3
apisix/plugins/ai-providers/openai.luaNic3
t/plugin/ai-aws-content-moderation-secrets.tShreemaan Abhishek3
Table: the 100 most-changed of 735 single-owner files
FileSole ownerCommits
t/coredns/db.test.local罗泽轩7
apisix/plugins/serverless/init.lua罗泽轩6
apisix/discovery/consul/client.luaNic5
t/tsconfig.jsonZeping Bai5
apisix/plugins/ai-cache.luaMohammad Izzraff Janius4
t/plugin/ai-proxy-stream-truncated.tNic3
apisix/plugins/ai-providers/anthropic.luaNic3
apisix/plugins/ai-providers/openai-compatible.luaNic3
apisix/plugins/ai-providers/openai.luaNic3
t/plugin/ai-aws-content-moderation-secrets.tShreemaan Abhishek3
t/plugin/ai-aws-content-moderation2.tShreemaan Abhishek3
apisix/plugins/jwt-auth/parser.luaShreemaan Abhishek3
t/plugin/limit-conn-variable.tShreemaan Abhishek3
t/node/websocket-proxy.tZeping Bai3
apisix/include/apisix/model/pubsub.protoZeping Bai3
docs/en/latest/plugins/ai-lakera-guard.mdMohammad Izzraff Janius3
docs/zh/latest/plugins/ai-lakera-guard.mdMohammad Izzraff Janius3
t/discovery/reset-healthchecker.tAshish Tiwari3
apisix/inspect/init.luajinhua luo3
t/wasm/response-rewrite/main.go罗泽轩3
t/wasm/go.mod罗泽轩3
t/wasm/go.sum罗泽轩3
apisix/plugins/ext-plugin-post-req.lua罗泽轩3
apisix/plugins/ext-plugin-pre-req.lua罗泽轩3
utils/check-test-code-style.sh罗泽轩3
t/lib/truncated_sse.luaNic2
t/cli/test_stream_proxy_protocol.shNic2
t/node/data_encrypt3.tNic2
t/plugin/ai-proxy-upstream-vars.tNic2
apisix/plugins/ai-providers/aimlapi.luaNic2
apisix/plugins/ai-providers/azure-openai.luaNic2
apisix/plugins/ai-providers/deepseek.luaNic2
apisix/plugins/ai-providers/gemini.luaNic2
apisix/plugins/ai-providers/openrouter.luaNic2
apisix/plugins/ai-protocols/converters/init.luaNic2
t/cli/test_load_full_data_init_worker.shNic2
t/stream-plugin/prometheus-metrics.tAlinsRan2
apisix/plugins/openapi-to-mcp/cache.luaAlinsRan2
apisix/plugins/openapi-to-mcp/openapi/loader.luaAlinsRan2
apisix/plugins/openapi-to-mcp/server.luaAlinsRan2
apisix/plugins/openapi-to-mcp/session.luaAlinsRan2
apisix/plugins/openapi-to-mcp/transport/sse.luaAlinsRan2
docs/en/latest/plugins/openapi-to-mcp.mdAlinsRan2
docs/zh/latest/plugins/openapi-to-mcp.mdAlinsRan2
t/lib/openapi_to_mcp_fixture.luaAlinsRan2
t/plugin/openapi-to-mcp-e2e-sse.tAlinsRan2
t/plugin/openapi-to-mcp-openapi-loader.tAlinsRan2
t/plugin/openapi-to-mcp.tAlinsRan2
t/node/ssl-protocols.tAlinsRan2
apisix/plugins/ai-providers/bedrock.luaShreemaan Abhishek2
t/plugin/ai-proxy-bedrock-single.tShreemaan Abhishek2
t/plugin/ai-proxy-bedrock.tShreemaan Abhishek2
t/cli/test_stream_port_range.shShreemaan Abhishek2
t/admin/metadata.tZeping Bai2
t/ts/admin_api.tsZeping Bai2
apisix/pubsub/kafka.luaZeping Bai2
apisix/plugins/public-api.luaZeping Bai2
t/utils/redis-schema.tMohammad Izzraff Janius2
t/plugin/prometheus-websocket.tMohammad Izzraff Janius2
apisix/plugins/ai-cache/vector-search/redis.luaMohammad Izzraff Janius2
t/lib/ai_cache_mock.luaMohammad Izzraff Janius2
apisix/plugins/ai-cache/schema.luaMohammad Izzraff Janius2
apisix/plugins/ai-lakera-guard/schema.luaMohammad Izzraff Janius2
.github/workflows/docker-standalone.ymlMohammad Izzraff Janius2
t/plugin/response-rewrite3.tyuweizzz2
t/discovery/stream/eureka.tAshing Zheng2
ci/pod/kafka/kafka-server/env/common2.envPeter Zhu2
t/control/plugin-metadata.tjinhua luo2
t/cli/test_makefile.sh罗泽轩2
t/core/os.t罗泽轩2
apisix/stream/xrpc/protocols/redis/schema.lua罗泽轩2
t/xrpc/apisix/stream/xrpc/protocols/pingpong/schema.lua罗泽轩2
utils/fix-zh-doc-segment.py罗泽轩2
t/wasm/fault-injection/main.go罗泽轩2
t/wasm/forward-auth.go罗泽轩2
t/stream-plugin/ip-restriction.t罗泽轩2
t/cli/test_dubbo.sh罗泽轩2
apisix/stream/plugins/ip-restriction.lua罗泽轩2
t/plugin/ext-plugin/runner.sh罗泽轩2
t/lib/dubbo-backend/dubbo-backend-interface/src/main/java/org/apache/dubbo/backend/DemoService.java罗泽轩2
t/lib/dubbo-backend/dubbo-backend-provider/src/main/java/org/apache/dubbo/backend/provider/DemoServiceImpl.java罗泽轩2
t/stream-plugin/plugin.t罗泽轩2
t/plugin/ai2.ttzssangglass2
docs/zh/latest/terminology/script.mdFei Han2
docs/assets/images/plugin/grafana-1.pngShuyang Wu2
docs/assets/images/plugin/grafana-2.pngShuyang Wu2
docs/assets/images/plugin/grafana-3.pngShuyang Wu2
apisix/plugins/prometheus/process_metrics.luaNic1
t/plugin/prometheus-process-metrics.tNic1
t/discovery/consul-tls.tNic1
t/discovery/consul-watch-race.tNic1
t/plugin/limit-count-redis-delayed-sync3.tNic1
t/lib/rate_limiting_info.luaNic1
t/plugin/limit-count-rate-limiting-info.tNic1
t/cli/ci-bailout.tNic1
t/cli/ci-kafka-topics.tNic1
t/plugin/ai-proxy-flush-fragmented.tNic1
t/fixtures/aliyun/result-anthropic-deny.sseNic1
t/fixtures/aliyun/result-anthropic-error.sseNic1
t/fixtures/aliyun/result-anthropic-null-delta.sseNic1

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
罗泽轩61168854
Shreemaan Abhishek22769576
Nic189115534
AlinsRan150142457
Zeping Bai6735293
YuanSheng Wang673209
guoqqqi5930181
tzssangglass589431
Traky Deng571239
Mohammad Izzraff Janius5544170
Ashish Tiwari4421513
jinhua luo4216371
YYYoung3717147
yuweizzz221548
soulbird202138
xiangwei18137
kwanhur172161
Yilia Lin171137
帅进超173118
Shuyang Wu171671
xuruidong16183
悟空16848
Fei Han152137
okaybase151116
ShenFeng312151523

Showing top 25 of 466 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
README.md70Ming Wen28.8%
Makefile55YuanSheng Wang29.1%
docs/en/latest/config.json55罗泽轩19.9%
docs/zh/latest/config.json55罗泽轩15.8%
apisix/init.lua51罗泽轩33.3%
apisix/cli/ngx_tpl.lua49罗泽轩32.2%
t/admin/plugins.t49罗泽轩13.1%
t/APISIX.pm44罗泽轩32.8%
docs/en/latest/admin-api.md42罗泽轩19.5%
bin/apisix40YuanSheng Wang35.6%
apisix/schema_def.lua40罗泽轩35.3%
docs/zh/latest/admin-api.md40罗泽轩22.8%
docs/en/latest/plugins/openid-connect.md37Traky Deng13.2%
apisix/cli/ops.lua36罗泽轩38.7%
apisix/plugins/openid-connect.lua34Shreemaan Abhishek18.9%
docs/en/latest/plugins/limit-count.md32Traky Deng11.3%
apisix/plugin.lua31罗泽轩26.4%
docs/zh/latest/plugins/openid-connect.md31Traky Deng15.1%
conf/config.yaml30YuanSheng Wang41.5%
docs/zh/latest/README.md30罗泽轩23.4%