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
31,647
in the current tree
Bus Factor
14
14 authors are primary owner of 15,965 of 31,647 files
Single-Owner Files
12,701
40.1% of tracked files
Contributors
3,839
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
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/model.goMarek Siarkowicz27
test/integration/apiserver/storage/traffic.goMarek Siarkowicz27
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/correctness.goMarek Siarkowicz26
CHANGELOG/CHANGELOG-1.34.mdKubernetes Release Robot21
CHANGELOG/CHANGELOG-1.35.mdKubernetes Release Robot17
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/types.goMarek Siarkowicz13
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/parse.goJaydip Gabani13
staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/ratcheting.goAlexander Zielenski13
staging/src/k8s.io/component-base/logs/api/v1/options_test.goPatrick Ohly11
staging/src/k8s.io/apiserver/pkg/authorization/authorizer/conditions.goLucas Käldström11
Table: the 100 most-changed of 12,701 single-owner files
FileSole ownerCommits
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/model.goMarek Siarkowicz27
test/integration/apiserver/storage/traffic.goMarek Siarkowicz27
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/correctness.goMarek Siarkowicz26
CHANGELOG/CHANGELOG-1.34.mdKubernetes Release Robot21
CHANGELOG/CHANGELOG-1.35.mdKubernetes Release Robot17
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/types.goMarek Siarkowicz13
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/parse.goJaydip Gabani13
staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation/ratcheting.goAlexander Zielenski13
staging/src/k8s.io/component-base/logs/api/v1/options_test.goPatrick Ohly11
staging/src/k8s.io/apiserver/pkg/authorization/authorizer/conditions.goLucas Käldström11
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/watch.goMarek Siarkowicz10
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/model_test.goMarek Siarkowicz10
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/evaluator_test.goJaydip Gabani10
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/helpers.goJaydip Gabani10
staging/src/k8s.io/apiserver/pkg/cel/common/equality.goAlexander Zielenski10
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/replay.goMarek Siarkowicz9
CHANGELOG/CHANGELOG-1.37.mdKubernetes Release Robot9
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/watch_test.goMarek Siarkowicz8
vendor/k8s.io/klog/v2/test/output.goPatrick Ohly8
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/helpers_test.goJaydip Gabani8
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/parse_test.goJaydip Gabani8
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/storage_test.goMarek Siarkowicz7
test/e2e_dra/resourceclaimstatus_test.goPatrick Ohly7
vendor/k8s.io/klog/v2/internal/serialize/keyvalues.goPatrick Ohly7
vendor/k8s.io/klog/v2/ktesting/testinglogger.goPatrick Ohly7
vendor/k8s.io/klog/v2/test/zapr.goPatrick Ohly7
staging/src/k8s.io/component-base/logs/api/v1/registry.goPatrick Ohly7
test/integration/logs/benchmark/common_test.goPatrick Ohly7
staging/src/k8s.io/apimachinery/pkg/util/validation/ip_test.goDan Winship7
pkg/controlplane/reconcilers/instancecount_test.goDan Winship7
cmd/kubeadm/app/apis/kubeadm/timeoututils.goLubomir I. Ivanov7
staging/src/k8s.io/apiserver/pkg/util/peerproxy/gv_exclusion_manager.goRicha Banker7
staging/src/k8s.io/apiserver/pkg/util/peerproxy/peerproxy.goRicha Banker7
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/admission_test.goJaydip Gabani7
staging/src/k8s.io/cloud-provider/controllers/route/metrics.golukasmetzner7
test/e2e_node/pods_api_test.goBrian Sonnenberg7
staging/src/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/encode_test.goBen Luddy7
staging/src/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/roundtrip_test.goBen Luddy7
staging/src/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/appendixa_test.goBen Luddy7
test/e2e/dra/test-driver/deploy/example/resourceclaim.yamlPatrick Ohly6
pkg/scheduler/framework/plugins/nodevolumelimits/csi_manager.goHemant Kumar6
test/e2e_node/remote/gce/gce_runner_test.gothc10066
staging/src/k8s.io/apiserver/pkg/util/peerproxy/gv_exclusion_manager_test.goRicha Banker6
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/auditannotations_test.goJaydip Gabani6
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/integration_test.goJaydip Gabani6
staging/src/k8s.io/apimachinery/pkg/runtime/serializer/cbor/collections.gochenk0086
staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/integrator.goMike Spreitzer6
plugin/pkg/admission/podtopologylabels/admission.goJames Munnelly6
test/integration/apiserver/storage/faults.goMarek Siarkowicz5
test/integration/apiserver/storage/README.mdMarek Siarkowicz5
staging/src/k8s.io/apiserver/pkg/storage/cacher/store/btree.goMarek Siarkowicz5
vendor/k8s.io/klog/v2/klogr.goPatrick Ohly5
test/e2e/framework/internal/junit/junit.goPatrick Ohly5
test/e2e/framework/skipper/skipper_test.goPatrick Ohly5
staging/src/k8s.io/apiserver/pkg/authorization/authorizer/evaluate.goLucas Käldström5
pkg/kubelet/cm/topologymanager/policy_merge_preferred_test.gophilhuan5
pkg/api/servicecidr/servicecidr.goAntonio Ojea5
pkg/api/servicecidr/servicecidr_test.goAntonio Ojea5
pkg/proxy/nodemanager/nodemanager.goDan Winship5
cmd/kubeadm/app/util/apiclient/wait_test.goLubomir I. Ivanov5
staging/src/k8s.io/apiserver/pkg/util/peerproxy/peer_discovery_test.goRicha Banker5
staging/src/k8s.io/apiserver/pkg/admission/testing/celtest/matchconditions_test.goJaydip Gabani5
test/e2e/storage/volumeattributesclass.gocarlory5
staging/src/k8s.io/apimachinery/pkg/runtime/serializer/cbor/collections_test.gochenk0085
staging/src/k8s.io/dynamic-resource-allocation/deviceattribute/numa_linux.goJohn Hull5
pkg/kubelet/cm/container_manager_test.goRohit Chaudhari5
staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/integrator_test.goMike Spreitzer5
staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics_test.goHan Kang5
staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics.goHan Kang5
staging/src/k8s.io/apiserver/pkg/storage/cacher/testing/mock.goMarek Siarkowicz4
staging/src/k8s.io/apiserver/pkg/storage/testing/correctness/storage.goMarek Siarkowicz4
vendor/github.com/opencontainers/cgroups/fs/fs.goDavanum Srinivas4
vendor/github.com/opencontainers/cgroups/fs2/fs2.goDavanum Srinivas4
vendor/go.opentelemetry.io/otel/sdk/internal/x/x.goDavanum Srinivas4
vendor/golang.org/x/net/dns/dnsmessage/svcb.goDavanum Srinivas4
vendor/golang.org/x/tools/internal/typesinternal/zerovalue.goDavanum Srinivas4
cmd/kubelet/app/options/globalflags_linux_test.goDavanum Srinivas4
staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/OWNERSDavanum Srinivas4
api/discovery/apis__coordination.k8s.io__v1alpha2.jsonJefftree4
staging/src/k8s.io/apiserver/pkg/util/flowcontrol/watch_tracker_test.goWojciech Tyczyński4
staging/src/k8s.io/dynamic-resource-allocation/api/doc.goPatrick Ohly4
test/e2e/invariants/logcheck/logcheck_test.goPatrick Ohly4
test/integration/dra/binding_conditions.goPatrick Ohly4
staging/src/k8s.io/client-go/testing/internal/listandwatch_test.goPatrick Ohly4
vendor/k8s.io/klog/v2/textlogger/options.goPatrick Ohly4
test/e2e_dra/README.mdPatrick Ohly4
vendor/github.com/onsi/ginkgo/v2/internal/progress_report.goPatrick Ohly4
vendor/github.com/onsi/ginkgo/v2/internal/spec_context.goPatrick Ohly4
vendor/github.com/onsi/gomega/gcustom/make_matcher.goPatrick Ohly4
pkg/apis/resource/install/install_test.goPatrick Ohly4
staging/src/k8s.io/kubelet/pkg/apis/dra/v1beta1/types.goPatrick Ohly4
vendor/github.com/go-logr/zapr/zapr.goPatrick Ohly4
vendor/k8s.io/klog/v2/ktesting/options.goPatrick Ohly4
vendor/k8s.io/klog/v2/k8s_references.goPatrick Ohly4
vendor/k8s.io/klog/v2/contextual.goPatrick Ohly4
pkg/kubelet/volumemanager/volumehealth/manager.goHemant Kumar4
staging/src/k8s.io/client-go/applyconfigurations/core/v1/volumehealthcondition.goHemant Kumar4
test/e2e/storage/csimock/csi_volume_limit_scaling.goHemant Kumar4
staging/src/k8s.io/cli-runtime/pkg/resource/fallback_query_param_verifier.goSean Sullivan4
staging/src/k8s.io/apiserver/pkg/util/proxy/metrics/metrics.goSean Sullivan4

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
Patrick Ohly2,1134744,779
Davanum Srinivas2,1108056,410
Jordan Liggitt2,0596577,497
Ben Luddy1,5501,5221,864
Mengjiao Liu1,39113,273
Benjamin Elder1,2911,2401,877
Tim Hockin1,1733362,820
Jefftree8526791,795
Samuel Roth7081739
Joe Betz6572353,237
Peter Hunt574408714
Keisuke Ishigami537537564
Paco Xu4753981,488
Alvaro Aleman47531,085
David Eads450752,225
Sean Sullivan449293789
Stephen Kitt436952,293
Yongrui Lin4212461,186
Graham Heffern296296303
Mike Danese289301,449
Cici Huang285239885
Surya Seetharaman274272293
ravisantoshgudimetla2733540
David Ashpole260491,182
Cyclinder Kuo240240384

Showing top 25 of 3839 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
api/openapi-spec/swagger.json422Jordan Liggitt4.5%
pkg/kubelet/kubelet.go402Yu-Ju Hong6.2%
pkg/features/kube_features.go364carlory3.2%
pkg/generated/openapi/zz_generated.openapi.go332Patrick Ohly5.1%
vendor/modules.txt312Davanum Srinivas17.9%
cmd/kubelet/app/server.go262Michael Taufen5.2%
pkg/kubelet/kubelet_test.go251Yu-Ju Hong6.2%
staging/src/k8s.io/api/core/v1/types.go250Tim Hockin4.8%
go.mod248Davanum Srinivas22.6%
go.sum227Davanum Srinivas24.3%
staging/src/k8s.io/api/core/v1/generated.proto226Tim Hockin5.2%
pkg/apis/core/validation/validation.go206Tim Hockin4.6%
staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go200Tim Hockin3.8%
test/e2e/framework/util.go198Wojciech Tyczyński4.9%
pkg/apis/core/types.go191Hemant Kumar4.0%
cluster/gce/util.sh188Brendan Burns4.4%
cluster/gce/gci/configure-helper.sh187Mike Danese6.2%
hack/local-up-cluster.sh187Davanum Srinivas11.3%
pkg/apis/core/validation/validation_test.go186Tim Hockin4.3%
cluster/gce/config-test.sh174Zach Loafman4.6%